这一章的有以下这么几点:
1.package:包,名字空间,写在文件的第一行。
import导入包。如何导入呢?机器怎么知道找到那些包,通过搜索环境变量classpath来匹配导入包,得到具体路径。classpath是用来寻找使用第三方类和用户自定义类。
2.四个访问修饰词
public 公开
protected 包内,继承
无 包内
private 仅供自用
公开性一次递减。
3.类访问权限
类的访问权限只有包访问权限即没有修饰词或者public。内部类除外。
目的:如果不希望任何人对该类有访问权限。
做法:将所有构造器指定为private。
例外:该类的static成员是可以使用构造器来生成对象。
例子如下:
class Soup1 {
private Soup1() {}
// (1) Allow creation via static method:
public static Soup1 makeSoup() {
return new Soup1();
}
}
class Soup2 {
private Soup2() {}
// (2) Create a static object and return a reference
// upon request.(The "Singleton" pattern):
private static Soup2 ps1 = new Soup2();
public static Soup2 access() {
return ps1;
}
}
soup2就是单例模式(singleon),只能创建一个对象,返回的都是single object的引用。
4.意义
实行访问控制的原因:a.使客户不能接触不该接触的部分。(那部分不属于客户端)
b.确保任何客户端不依赖某个类的底层实现的任何部分。(更改底 层结构时,若接口和实现被明确隔离和保护(主观理想状态),就可以达到这一目的。)