Java权限修饰符 private、default、protected、public置于类的成员定义前,用来限定对象对该类成员的访问权限。
- private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
- default: 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法
- protected:对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
- public:任何位置都可见。使用对象:类、接口、变量、方法
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
private | Yes | |||
default | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
对于class的权限修饰只可以用public和default。
- public类可以在任意地方被访问。
- default类只可以被同一个包内部的类访问。
什么情况用什么修饰符?
- 属性通常使用private封装起来
- 方法一般使用public用于被调用
- 会被子类继承的方法,通常使用protected
- 作用范围最小原则:能用private就用private,不行就放大一级,用default,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了