Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
- public : 对所有类可见。使用对象:类、接口、变量、方法。 (任何类中都能被访问到)
- protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。 (被位于同一package中的所有类访问到,被protected所修饰的成员也能被该类的所有子类继承下来,注意:这里是指同一个package或者不同的package中的子类都能访问)
- default(friendly) (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 (包访问权限,即在同一包内均可被访问,被friendly所修饰的成员只能被该类所在同一个package中的子类所继承下来,也就是说只有在同一个package中的子类才能访问到父类中friendly修饰的成员。)
- private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) (即只能在当前类中被访问到,它的作用域最小)
适用范围<访问权限范围越小,安全性越高>:
访问权限 | 类 | 包 | 子类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default(friendly) | √ | √ | × | × |
private | √ | × | × | × |