https://www.liaoxuefeng.com/wiki/1252599548343744/1376414781669409
Java的内部类可分为Inner Class、Anonymous Class和Static Nested Class三种:
- Inner Class和Anonymous Class本质上是相同的,都必须依附于Outer Class的实例,即隐含地持有Outer.this实例,并拥有Outer Class的private访问权限;
- Static Nested Class是独立类,但拥有Outer Class的private访问权限。
public class Main {public static void main(String[] args) {Outer outer = new Outer("Nested"); // 实例化一个OuterOuter.Inner inner = outer.new Inner(); // 实例化一个Innerinner.hello();}}class Outer {private String name;Outer(String name) {this.name = name;}class Inner {void hello() {System.out.println("Hello, " + Outer.this.name);}}}
public class Main {public static void main(String[] args) {Outer.StaticNested sn = new Outer.StaticNested();sn.hello();}}class Outer {private static String NAME = "OUTER";private String name;Outer(String name) {this.name = name;}static class StaticNested {void hello() {System.out.println("Hello, " + Outer.NAME);}}}
