“包” 学习小结:
将类放入包中:
在类源文件开头加上,package xxx.xxx.xxx;
一个包可以包括多个源文件(*.java);
每个源文件中可以包含多个类,但只有一个类允许定义为public,并且这个公有类名与文件名要匹配;
任何未经修饰的元素(类,方法,域等)都是包可见的,即可以被包中的其它类访问,因此或不想让包中的其它类访问就要将它们设置为private;
import只能导入其它包(非当前类所在包)的公有类,当前包中的类都自动导入,java.lang.*自动导入;
注意,java的import与C的include不同,前者不将源代码并入编译,而是去查看相应的文件,后者是将代码导入再编译;
编译器查找引用类的地方:import指定的包、当前包;
编译器查找时,要按照从当前目录开始,再到CLASSPATH环境变量指定的地方去查找包,解释器java只在CLASSPATH设定的地方去找类,这一点要注意在设置CLASSPATH时要加上当前目录(.),例如:
假设CASSPATH=.:/home/usr/classdir:/home/usr/archives/archive.jar(linux下的设置),如果要找类文件com.zhyhang.Employee,则解释器的要查看的路径有:
com/zhyhang/Employee.class(从当前目录开始)
/home/usr/classdir/Employee.class
/home/usr/archives/archive.jar中的com/zhyhang/Employee.class。
将类放入包中:
在类源文件开头加上,package xxx.xxx.xxx;
一个包可以包括多个源文件(*.java);
每个源文件中可以包含多个类,但只有一个类允许定义为public,并且这个公有类名与文件名要匹配;
任何未经修饰的元素(类,方法,域等)都是包可见的,即可以被包中的其它类访问,因此或不想让包中的其它类访问就要将它们设置为private;
import只能导入其它包(非当前类所在包)的公有类,当前包中的类都自动导入,java.lang.*自动导入;
注意,java的import与C的include不同,前者不将源代码并入编译,而是去查看相应的文件,后者是将代码导入再编译;
编译器查找引用类的地方:import指定的包、当前包;
编译器查找时,要按照从当前目录开始,再到CLASSPATH环境变量指定的地方去查找包,解释器java只在CLASSPATH设定的地方去找类,这一点要注意在设置CLASSPATH时要加上当前目录(.),例如:
假设CASSPATH=.:/home/usr/classdir:/home/usr/archives/archive.jar(linux下的设置),如果要找类文件com.zhyhang.Employee,则解释器的要查看的路径有:
com/zhyhang/Employee.class(从当前目录开始)
/home/usr/classdir/Employee.class
/home/usr/archives/archive.jar中的com/zhyhang/Employee.class。