java程序中的“世界”访问级别是啥?
Posted
技术标签:
【中文标题】java程序中的“世界”访问级别是啥?【英文标题】:What is the "world" access level in a java program?java程序中的“世界”访问级别是什么? 【发布时间】:2015-11-13 10:15:20 【问题描述】:Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
(Default) Y Y N N
private Y N N N
什么是“世界”访问级别?它与包访问级别有何不同?
编辑:我的错。错误地认为程序中的所有代码都在一个包中。
【问题讨论】:
呃,公开? public 是最开放的,几乎没有什么是不能访问 public 字段的。 World 表示每个元素,无论其位置如何。 @oxguy3 我不明白。这与能够从整个包中访问有何不同? @qaz 并非所有 Java 代码都位于同一个包中。一个包类似于java.util
或com.google.common.base
或org.junit
。
【参考方案1】:
这直接来自Java Tutorial:
访问级别
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
第一个数据列表示该类本身是否有权访问 访问级别定义的成员。如你所见,一堂课总是 可以访问自己的成员。第二列表示是否 与类在同一个包中的类(不管它们的 亲子关系)可以访问该成员。第三列表示 在这个包外声明的类的子类是否有 访问成员。第四列表示是否所有类 有权访问该成员。
“世界”的范围实际上是“一切”——任何类,无论它属于哪个包,都可以访问使用public
访问修饰符声明的类。 p>
将此与protected
进行对比,这意味着包内的类和受保护类的子类(无论包如何)都可以访问该类。
【讨论】:
【参考方案2】:public是java中最广泛的访问级别。对访问属性或继承类成员没有限制。它们在所有包中都是可见的。所以,最终没有像世界修饰符这样的东西,而它可能只是定义的同义词公开。
【讨论】:
以上是关于java程序中的“世界”访问级别是啥?的主要内容,如果未能解决你的问题,请参考以下文章