13: 使类和成员的可访问性最小化
标签(空格分隔): Effective Java
- 尽可能地使每个类或者成员不被外界访问。
- 类或者接口能做成包级私有,就做成包级私有。如果做成公有,则是API的一部分,有责任支持它。
- 如果一个类只在另一个中使用,考虑做成另一个类的内部私有类。
- 缺省(default)的访问级别是包级私有。
- protected级别是导出的API的一部分,应该尽量少用。
- 实例域不能是公有的,final的域例外。
- 包含共有可变域的类不是线程安全的。
- 静态final域要不包含基本类型的值,要不包含指向不可变的引用,不然会导致灾难。
- 长度为0的数组都是可变的,声明为final也没用。可以使用两种方法,一是私有数组域,公有unmodifiableList;二是私有数组域,公有clone方法。