一、总共有四种:
- friendly:包访问控制权限(什么也不写默认)
- public:均可
- protected:只有继承类可访问
- private:只有自己
二、使用说明
在类的成员编写中,一般先将public 成员置于开头,后面跟着protected,包访问权限和private成员。
这样做的好处:类的使用者可以从头读起,首先阅读对他们而言最重要的部分,直到遇到作为内部实现细节的非public成员时停止阅读。
三、private使用注意:
1. private在多线程的环境下非常重要
2. 任何可以肯定只是该类的一个“助手”方法的方法,都可以指定为private
3. private使用小示例:
示例1)
public class Sundae {
private Sundae(){}
static Sundae makeASundae(){
return new Sundae();
}
}
public class IceCream {
public static void main(String[] args){
// ! Sundae x = new Sundae();
Sundae x = Sundae.makeASundae();
}
}
上面的示例说明了private的用武之地。
a) 想控制如何创建对象,并阻止别人直接访问某个特定的构造器(或全部构造)器
b) 既然默认构造器是唯一定义的构造器,并且它是private的,那么它将阻碍对此类的继承
示例2);
例如在java.util.concurrent中的Executors类中,它的构造方法如下:
/** Cannot instantiate. */
private Executors() {}