Java中的访问修饰符

这个问题在这里已经有了答案:

  • 在Java中,封装私有,公共,受保护和私有26个答案之间的区别

  • package-private不是一个真正的修饰符。 您无法键入package-private并让系统将其识别为访问修饰符。 这真的是默认设置,不包括任何其他修饰符。

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

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

    在这个例子中,以下组成了Cow

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

    编辑未来:在Java 8中, package应该是这个所需的修饰符。 直接输入default在这里仍然不适用。


    所谓的“封装 - 私有”访问级别是没有privateprotectedpublic等修饰符的情况下发生的。

    例:

    public class Test {
        int test;  // package-private
    }
    

    同一个包中的任何东西,甚至是一个不相关的类都可以访问它,但包之外的其他类(甚至是类的子类)不能访问它。

    这个关于这个主题的Java教程的链接应该有所帮助。

    链接地址: http://www.djcxy.com/p/24063.html

    上一篇: access modifiers in Java

    下一篇: LocalDate has private access in LocalDate