public | protected | default | private | |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中 | √ | √ | √ | |
子类 | √ | √ | ||
不同包中 | √ |
private(私有):
- 可以修饰成员变量,成员方法,构造方法。
- 不能修饰外部类,如果修饰了内部类,只能在该类的外部类内部使用。
- 被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是可以通过set和get方法向外界提供访问方式。
default(默认):
- 可以修饰类,成员变量,成员方法,构造方法。
- 也称为friendly,它是针对本包访问而设计的,默认为此类型。
protected(受保护的):
- 可以修饰成员变量,成员方法,构造方法。
- 不能修饰类外部类。
- 被protected修饰后,只能被同包下的其他类访问;如果不同包下的类要访问被protected修饰的成员,这个类必须是其子类。
public(公共的):
- 可以修饰类,成员变量,成员方法,构造方法。
- 被public修饰后,可以在任何一个类中,不管同不同包,任意使用。
- 对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。