使类和成员的可访问性最小化

规则1:尽可能的使得每个类或者成员不被外界访问。
顶层的类或者接口,只能是包级私有的或者共有的,如果可能,应该是他们尽可能的包级私有。这样当你更新代码的时候不会影响到它的使用者。否则就需要永远支持它。
如果一个类只是在某一个类中被使用,应该考虑将它做成私有嵌套类。
成员的控制方法
private:私有的,只有类本身能够访问
默认的:包内访问
protected:子类访问和包内访问
public:公共访问
注意:受保护的成员是类的导出的API的一部分,应该永远被支持。
实例域绝对不能是共有的。包含共有可变域的类并不是线程安全的。
注意:数组总是可变的,即使是私有的。看下面的示例:
public class Test1 {
static T t=new T();

public static void main(String[] args) {
   int nums=3;
   t=new T();
   t.n=10;
   t.getnums()[1]=3;
   System.out.println(t.getnums()[0]+" "+t.getnums()[1]+" "+t.getnums()[2]);

}
}
class T{
private int []nums={1,2,3};
protected int n=0;

public int []getnums(){
   return nums;
}
}
结果为:
1 3 3
原文地址:https://www.cnblogs.com/macula7/p/1960609.html