6.1 包:库单元
- 一个.java文件为一个编译单元,含且仅含1个 public 类,且类名与文件名相同
- package 是文件中第一句程序代码
- java 可运行程序是一组 .class 文件构成的 jar 包
- java 类库是一组类文件
package access;
- Java 解释器的运行过程:找出环境变量 CLASSPATH 作为查找 .class 文件的根目录,然后解释器获取包名称并与 CLASSPATH 相连接,根据这个路径找到对应的 .class 文件
如 CLASSPATH = C: \DOC\JavaT
包名为 net.mindview.simple
得到路径为 C: \DOC\JavaT\net\mindview\simple
CLASSPATH 可包含多个可查询的路径
CLASSPATH = C: \DOC\JavaT;D: \DOC\JavaT
6.2 Java 访问权限修饰词
- 包访问权限
成员对包内成员可访问,对包外是 private - public: 接口访问权限
- private: 你无法访问
class Sundae {
private Sundate() {}
static Sundae makeASundae() {
return new Sundae();
}
}
public class IceCream {
public static void manin(String[] args) {
Sundae x = Sundae.makeASundae();
}
}
- protected : 继承访问权限
把基类的成员的访问权限给派生类,也提供包访问权限
6.3 接口和实现
- 访问权限的控制是具体实现的隐藏
- 把数据和方法包装进类里,以及具体实现的隐藏,被称作封装
6.4 类的访问权限
public class Widget {}
- 文件内只能有一个 public 类且类名与文件名相同
- 文件中可以一个 public 的类也没有,此时文件名没有限制
- 类仅可以是 public 的或者包访问权限的,不能是 private 的或者 protected 的
class Soup1 {
private Soup1() {}
public static Soup1 makeSoup() {
return new Soup1();
}
}
class Soup2 {
private Soup2() {}
private static Soup2 ps1 = new Soup2();
public static Soup2 access() {
return ps1;
}
}