先放一张表,有直观印象:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
default(缺省) √ √ × ×
private √ × × ×
不写时默认为default.
解释说明:
public:
public公共的,表示该属性(或方法)公开,所有用户都可以直接进行调用。
default(缺省):
default表示默认,即不写时候的状态,不仅本类访问,而且是同包可见。
private:
private私有的,表示该属性(方法)为只有本类内部可以访问(类内部可见)。(想用private需要建立set和get方法供其他方法调用,是四种访问等级中最高的一种)。
protected:
protected受保护的,对于子类和同包下的类可见,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
不同修饰符可以修饰的内容:
public、private、protected和缺省default都可以用来修饰成员变量、成员方法和构造方法,除此之外,public还可以用来修饰类本身。