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