是的,Java內部類可以訪問外部類的成員(包括私有成員)。內部類是定義在外部類內部的類,因此它可以訪問外部類的所有成員。如果內部類是靜態的(使用static關鍵字修飾),則它只能訪問外部類的靜態成員。
以下是一個簡單的示例,說明內部類如何訪問外部類的成員:
public class OuterClass {
private int data = 10;
class InnerClass {
public void accessOuterMembers() {
System.out.println("Accessing outer class private member: " + data);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.accessOuterMembers(); // 輸出:Accessing outer class private member: 10
}
}
在這個例子中,InnerClass
是 OuterClass
的內部類。它可以訪問外部類的私有成員 data
。在 main
方法中,我們創建了一個 OuterClass
的實例和一個 InnerClass
的實例,然后通過內部類實例訪問了外部類的私有成員。