1、基本介绍
为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。在实际项目开发中任何类都应该定义在包中。
(1)package语句必须作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(如果缺省package语句,则指定为无名包)
格式:package pkg1[.pkg2[.pkg3...]];
约定俗成的规定是包名写成“公司域名倒过来”,后面还可以加入项目名、部门名等。
(2)Java编译器把包对应于文件系统的目录管理,package语句中,用“.”来指明包(目录)的层次,例如:
package com.sxt;//则该文件中所有的类位于.\com\sxt目录下。
2、例子
编译出的.class文件必须位于正确的目录,即.class文件所在目录与包的层次完全一致;其他包中的类在使用该类时,必须把名字写全,即包名.类名(或者写入import语句);在执行时(java **)是也要写全:包名.类名
(1)
(2)
(3)
3、总结
(1)如果想将一个类放入包中,在这个类源文件第一句写package。
(2)必须保证该类的class文件位于正确的目录下。
该类的源码可能会产生影响,这时应删除或转移源码到另外的目录。
(3)另外的类想访问该类的话,有两种方法:
a.写全名:包名.类名;
b.用import语句(*或具体类名)。
注:访问位于同一个包中的类不需要这样。
(4)class文件的最上层包的父目录必须位于classpath下。
classpath设置:classpath是个很麻烦的问题
(5)执行一个类时,需要写全包名(包名.类名)。该类的class文件的最上层包的父目录也必须位于classpath下。
4、JDK提供的包
用下面方法查看JDK提供的包,位于rt.jar目录下,将其解压缩即可查看。
JDK提供的包有:
java.lang中的类不许import,可以直接用;其他包必须import。
5、打包自己的类
在cmd中将当前位置定位在包的父目录,执行语句:jar -cvf xx.jar *.* 即可实现打包。
之后将jar包添加到classpath中(如下图),即可使用。