一、package 关键字
包是 Java 语言有效管理类的一个机制
包名的目的是有效区分名字相同的类,即同一包下不能存在名字相同的类
package 语句作为 Java 源文件的第一条语句,指明源文件定义的类所在的包
package 包名; // 包名可以是一个合法标识符,也可以是是若干个标识符加“.”分隔而成
编译某个目录下的全部 Java 源文件,进入该目录,使用通配符(*) ,javac *.java
运行有包名的主类,必须到 com\yuyouyi\test 的上一层目录中运行,java 包名.主类名
二、import 关键字
目标类和当前类属于同一个包,则可以省略 import 语句
目标类和当前类不在一个包中,就必须使用 import 语句
使用 import 语句引入包中的类、接口,Java 大约提供 130 多个包
一个 Java 源文件中可以有多个 import 语句,必须写在 package 语句和类定义之间
- java.lang:包含所有的基本语言类
- java.io:包含所有的输入/输出类
- java.util:包含实用类
- java.sql:包含操作数据库的类
- java.net:包含所有实现网络功能的类
1、引入运行类库中的类
import java.util.*; // 引入java.util包中的所有类
import java.util.Date; // 引入java.util包中的Date类
(1)java.lang 包是 Java 语言的核心类库,包含运行 Java 程序必不可少的系统类
系统自动引入 java.lang 包中的类(String、Math等),无需再使用 import 引入
(2)使用 import 语句引入整个包中的类,可能会增加编译时间,但不会影响运行性能
原因:程序运行时只将真正使用的类的字节码文件加载到内存
(3)没用 import 语句引入包中的类,可以直接带着包名使用该类
java.util.Date date = new java.util.Date();
2、引入自定义包中的类
(1)方法一,更新 classpath 的设置,新增自定义包所在的目录
classpath=C:\Java\jdk1.8.0_211\jre\lib\rt.jar;.;E:\JavaLearning
- rt.jar 是运行类库中的类
- “.;” 表示可以加载应用程序当前目录及其子目录中的类
- E:\JavaLearning,自定义包 com.yuyouyi.test 所在的目录
(2)方法二,自定义包名形成的目录放在同一个文件夹中
- 在同一文件夹下的类就可以相互使用
- 无包名类可以使用 import 语句来使用有包名类,有包名类无论如何也无法使用无包名类