Java中有四种权限修饰符:
public > protected > (default) > private
public | protected | (default) | private | |
---|---|---|---|---|
同一个类(我自己) | √ | √ | √ | √ |
同一个包(我邻居,子类) | √ | √ | √ | |
不同包子类 | √ | √ | ||
不同包非子类 | √ |
注意事项:(default)并不是用default来修饰,而是不写,写了反而会报错。
参考:On Java8 封装
Java 有三个显式关键字来设置类中的访问权限:public
(公开),private
(私有)和protected
(受保护)。这些访问修饰符决定了谁能使用它们修饰的方法、变量或类。
-
public
(公开)表示任何人都可以访问和使用该元素; -
private
(私有)除了类本身和类内部的方法,外界无法直接访问该元素。private
是类和调用者之间的屏障。任何试图访问私有成员的行为都会报编译时错误; -
protected
(受保护)类似于private
,区别是子类(下一节就会引入继承的概念)可以访问protected
的成员,但不能访问private
成员; -
default
(默认)如果你不使用前面的三者,默认就是default
访问权限。default
被称为包访问,因为该权限下的资源可以被同一包(库组件)中其他类的成员访问。