簡體   English   中英

成員類訪問修飾符

[英]Member Class access modifier

很明顯,普通類的Default訪問修飾符是包私有的,而內部Local類或內部匿名是私有的,但是對我來說,當我們嘗試從外部查看Member類時,它像私有成員一樣對我來說並不明顯容器類,所以它是私有的還是包私有的?

除非另行指定,否則所有內容都具有默認訪問權限(包私有)。

(默認情況下所有內容都是公共的接口除外)

就像Tim B所說的那樣,默認情況下,所有內容都是包私有的,接口中除外。

以下代碼段對此進行了演示。

public class OuterClass {

    @Override
    public String toString() {
        return "I am the public outer class";
    }

    static class StaticInnerClass {
        @Override
        public String toString() {
            return "I am the package private inner class";
        }
    }

    class NonStaticInnerClass {
        @Override
        public String toString() {
            return "I am the package private non static inner class";
        }
    }

    public static void main(String[] args) {
        OuterClass oc = new OuterClass();
        OuterClass.StaticInnerClass ic = new OuterClass.StaticInnerClass();
        NonStaticInnerClass nsic = oc.new NonStaticInnerClass();
        System.out.println(oc);
        System.out.println(ic);
        System.out.println(nsic);
        System.out.println(new SecondClass());
    }
}

class SecondClass {
    @Override
    public String toString() {
        OuterClass oc = new OuterClass();
        OuterClass.StaticInnerClass ic = new OuterClass.StaticInnerClass();
        OuterClass.NonStaticInnerClass nsic = oc.new NonStaticInnerClass();
        return oc.toString() + "\n" + ic.toString() + "\n" + nsic.toString();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM