3.类和接口_EJ
第13条: 使类和成员的可访问性最小化 良好的模块设计能隐藏其内部数据和其他实现细节,模块之间只通过它们的API进行通信。java语言提供了许多机制来协助隐藏信息。访问控制机制决定了类、接口和成员的可访问性,实体的可访问性是由该实体申明所在的位置,以及该实体申明中所出现的访问修饰符共同决定。正确使用修饰符对于实现信息隐藏非常关键。 1.尽可能使每个类或成员不被外界访问。对于成员有四种可能的访问级别。 a.私有的--只有在申明该成员的顶层类内部才可以访问这个成员。 b.包级私有--申明该成员的包内部的任何类都可以访问这个成员。 c.受保护的--申明该成员的包内部的任何类都可以访问这个成员。并且该类的子类可以访问这个成员。 d.公有的--在任何地方都可以访问该成员。 2.实例域绝不能是公有的。一旦使这个域称为公有的,就放弃了对存储在这个域中的值进行限制的能力。 还要注意,长度非零的数组总是可变的。修正这个问题有两个方法,使数组变成私有的,并增加一个公有的不可变列表,或添加一个方法,它返回私有数组的一个备份。 public class ArrayTest { //potential security hole //public static final Object[] VALUES = {"one", "two", "three"}; private static final