C++/C# 的 Nested Class 無此機制。Java 內部類可透明訪問外部類所有成員 (含 private)。
public class Container {
String name;
class InnerClass {
public void func() { System.out.println(name); } // 直接訪問外部私有成員
}
public Container(String name) {
this.name = name;
new InnerClass(); // 建構子中隱式傳遞 this
}
public static void main(String[] args) {
Container a = new Container("ContainerA");
InnerClass b = a.new InnerClass(); // 靜態上下文必須用 外部實例.new
InnerClass c = new Container("ContainerB").new InnerClass(); // 等價寫法
// b.func(); c.func(); // 輸出 ContainerA / ContainerB
}
}
outerInstance.new InnerClass()。直接 new InnerClass() 編譯錯誤。new InnerClass() 自動綁定 this。public 成員。ContainerA
ContainerB
證明內部類確實綁定不同外部實例。