Java中的访问修饰符

-2 java access-modifiers


编辑修复标记为重复或更清楚为什么它似乎是重复.当时我不知道那个包和默认在哪里,因此这个帖子的原因相同.


现在我正在准备我的Java考试的考试问题,我有一个问题,要求我解释访问修饰符,并询问我有关修饰符的问题.

我可以找到有关私有,受保护,公共和默认的信息,但无法在Package上找到任何内容.

有人可以给我一个答案或链接我一篇关于它的文章吗?

ζ--*_*ζ-- 7

package-private不是真正的修饰语.您无法键入package-private并让系统将其识别为访问修饰符.它实际上是默认值,不包括任何其他修饰符.

这意味着只能在同一个包中访问给定的成员.

例如,com.hexafraction.Cow可以访问具有默认修饰符(实际上没有)的成员com.hexafraction.Dog,但com.foo.Crow无法访问该成员,因为它不在同一个pacakge中.

在此示例中,以下内容组成Cow:

pacakge com.hexafraction;
class Cow{
    void moo(){ //no public, protected, or private modifier
        System.out.println("moo!");
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑未来:在Java 8中,package应该是这需要的修饰符.字面输入default仍然不适用于此.

  • 软件包私有成员的示例将有助于澄清您的答案. (2认同)