java中使用package包分割单个全局命名空间,保证无论有多少类,类名都不会冲突
- 一个.java文件内部有一个、而且只能有一个public类,类名必须与文件名完全一致。
- 在一个.java文件的开头使用package关键字,作用是指出这个编译单元属于该package的一个库的一部分。此时,所有的以该package开头的.java和.class文件(编译时,.java 文件中的每个类,都会生成一个.class)都会归纳到一起,都成为该package包内的类。
- 在调用该package包内的类时,必须用import关键字激活package内的名字,使它们能够使用,另一个办法则是指定完整的名称(包名.类名)。
- 作为一名库设计者,一定要记住package和import关键字允许我们做的事情就是分割单个全局命名空间,保证我们不会遇到名字的冲突——无论有多少人使用因特网,也无论多少人用Java 编写自己的类。(这一保证的前提是,使用因特网域名创建自己的package名,因为域名肯定是独一无二的)。
- 一个包可由多个.class文件构成,为避免局面混乱,将它们都置入单个目录里。但可能往下又进行了分级,因此需要将.class文件的位置路径编码到package的名字里,才能找出那些可能深藏于目录结构某处的类。
- 环境变量CLASSPATH作用是,java解释器工作时,当遇到import语句,会从CLASSPATH为“根”目录,从这里展开对.class文件的搜索。从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从CLASSPATH 根开始的一个路径名。
- 同一个package包内,“友好的”(friendly)类成员可以直接被其他类访问,这里“友好的”是不指定访问指示符的成员。相对于private,默认的“友好”访问已经是一种适当的隐藏方法,不必频繁使用private关键字,然而private仍然有非常重要的用途,特别是在涉及多线程处理的时候。