对类文件进行分类管理,给类提供多层命名(名称)空间。写在程序文件的第一行。
类名的全称是 包名.类名。包也是一种封装形式。
现在学习目录下建立一个testpack包,建立的方式如下图所示:
javac -d . PackageDemo。java 这样学习目录下才会有一个包的目录产生,或者在学习目录下建立一个testpack的文件夹,然后再在这个文件夹里面去新建源文件。
java 包名.类名来执行class文件。
在c盘的建立一个testfolder文件夹用于存放运行将要被访问的包中的类。
在学习目录下新建一个源文件ForTestPack。java但是将其的类编译到testfolder文件夹中:
修改了一下ForTestPack的源代码:
package nicolas.pack;//定义一个名为nicolas。pack的包
class ForTestPack
{
ForTestPack()
{
System.out.println("ForTestPack is running");
}
}
这样c盘就有了一个包目录了。在testpack包中的源文件PackageDemo中去访问nicolas。pack包中的ForTestPack类。
写了nicolas.pack.ForTestPack后进行编译仍旧发生编译错误:因为包不在当前目录下,所以找不到。要重新设置classpath,classpath中药包含被访问的包。
set classpath=c:\testfolder
//be careful of the ":" sign's use.
修改classpath后仍旧发生编译错误
因为包出现了,就出现了访问权限问题,权限不够,所以其他包无法访问包中的类。需将要被访问的类提升权限,用public关键字解决。
一旦一个类被public所修饰的话,那么这个源文件保存时的文件名必须和类名一致,否则会编译报错。
将ForTestPack共有化,然后重新编译一下这个源文件。
再次编译发现还是出错,原因是构造函数式私有的,不能公有化,所以将其注释掉,再写了一个公有的show函数,然后在PackageDemo中调用这个show函数,重新编译运行,成功截图如下所示: