Java 中的靜態嵌套類和非靜態嵌套類

Java 中的靜態嵌套類和非靜態嵌套類html

<blockquote><b>術語:</b>嵌套類分爲兩類:靜態嵌套類和非靜態嵌套類.聲明 static 的嵌套類稱爲靜態嵌套類,非靜態嵌套類也稱爲內部類.</blockquote>java

class OuterClass {
    private static String msg = "GeeksForGeeks";

    public static class NestedStaticClass {
        public void printMessage() {
            System.out.println("Message from nested static class: " + msg);
        }
    }

    public class InnerClass {
        public void display() {
            System.out.println("Message from non-static nested class: " + msg);
        }
    }
}

public class Main {
    public static void main(String args[]) {
        OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
        printer.printMessage();

        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display();

        OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
        innerObject.display();
    }
}

<span class="badge badge-pill badge-primary" data-toggle="collapse" data-target="#Main">運行結果</span>oracle

<div class="collapse" id="Main"> ``` Message from nested static class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks ``` </div>this

public class ShadowTest {

    public int x = 0;

    class FirstLevel {

        public int x = 1;

        void methodInFirstLevel(int x) {
            System.out.println("x = " + x);
            System.out.println("this.x = " + this.x);
            System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
        }
    }

    public static void main(String... args) {
        ShadowTest st = new ShadowTest();
        ShadowTest.FirstLevel fl = st.new FirstLevel();
        fl.methodInFirstLevel(23);
    }
}

<span class="badge badge-pill badge-primary" data-toggle="collapse" data-target="#ShadowTest">運行結果</span>spa

<div class="collapse" id="ShadowTest"> ``` x = 23 this.x = 1 ShadowTest.this.x = 0 ``` </div>code

參考資料htm

相關文章
相關標籤/搜索