可见性(控制对类成员的访问)
从 Java 教程 :
访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。访问控制有两个级别:
- 在顶级 -
public
,或 package-private (没有显式修饰符)。 - 在成员级别 -
public
,private
,protected
或 package-private (无显式修饰符)。
可以使用修饰符 public
声明一个类,在这种情况下,该类对于所有类都可见。如果一个类没有修饰符(默认值,也称为包私有 ),则它只在其自己的包中可见。
在成员级别,你也可以使用 public
修饰符或不使用修饰符( package-private ),就像使用顶级类一样,并且具有相同的含义。对于成员,还有两个额外的访问修饰符:private
和 protected
。private
修饰符指定只能在自己的类中访问该成员。protected
修饰符指定只能在其自己的包中访问该成员(与 package-private 一样 ),此外,还可以在另一个包中通过其类的子类访问该成员。
下表显示了每个修饰符允许的成员访问权限。
访问级别:
修改 | 类 | 包 | 子类 | 世界 |
---|---|---|---|---|
public |
Y | Y | Y | Y |
protected |
Y | Y | Y | N |
no modifier | Y | Y | N | N |
private |
Y | N | N | N |