Java包
包
包是一组类和接口的集合。包的引入,实现了封装特性。
同一个包中不允许有同名的类和接口,不同的包中允许同名的类和接口。包的引入,解决了类名的冲突问题。
包本身也是分级的,包中还可以有子包。
Java的包可以用文件系统来存放,也可以存放在数据库中。
在Windows中,包是以文件系统来存放的,包和类的关系类似于文件夹和文件的关系。包中的子包,相当于文件夹中的子文件夹。
顶层类和接口,只能定义public或默认访问权限,默认权限表示仅同一个包中可见,public 则是公共的,没限制。
Java中有两种包: 命名包 和 未命名包。
声明和导入包
[package 包名;]?
[import 包名.[类名 | *]? ; ]*
包名.类名 test = new 包名.类名();
包声明语句必须是源文件中的第一条语句。(前面可以有注释、空行)
指定包名后,该源文件中的所有类都属于这一个包中,不可能有某个类属于其它包。
对于同一个工作目录下的两个源文件,如果其声明的包是相同的,则这两个文件中的所有类均属于同一个包。
导入时,可以只导入一个包中的类(指定最后的类名),也可以导入这个包中的所有类(最后用*号表示)。
导入时的*号有一个限制:系统预定义的包可以随便导入,但如果要导入自定义包,则本源文件必须声明成一个命名包。
也可以不用import语句,而是直接使用 包名.类名。
注意,包的声明和导入语句,末尾的分号是必须的。
编译、运行包
javac 源文件名.java ,会在当前目录下生成class文件(虽然其包名可能是一长串)。如果要正常使用这个class文件,则必须手动创建其中包对应的目录,并移动本class到对应目录中。
javac -d . 源文件名.java ,会在 ./包名对应的路径 生成对应的目录结构,并将编译的class文件放入其中。
java 包名.类名 或 java 包名对应路径/类名 , 即可运行对应class文件。
jar文件
.jar 就是 ZIP格式的压缩文件,可以先压缩为 .zip 再改名 为 .jar,也可以用zip软查看.jar文件中的内容。
jar文件中可以有class文件或其它任何文件。
jar cvf jar包名.jar A.class B.class ... ,将多个class文件打包为一个jar包。
java -jar jar包名.jar ,执行一个jar包。

浙公网安备 33010602011771号