是的,Java內(nèi)部類可以訪問外部類的成員(包括私有成員)。內(nèi)部類是定義在外部類內(nèi)部的類,因此它可以訪問外部類的所有成員。如果內(nèi)部類是靜態(tài)的(使用static關(guān)鍵字修飾),則它只能訪問外部類的靜態(tài)成員。
以下是一個(gè)簡單的示例,說明內(nèi)部類如何訪問外部類的成員:
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
}
}
在這個(gè)例子中,InnerClass
是 OuterClass
的內(nèi)部類。它可以訪問外部類的私有成員 data
。在 main
方法中,我們創(chuàng)建了一個(gè) OuterClass
的實(shí)例和一個(gè) InnerClass
的實(shí)例,然后通過內(nèi)部類實(shí)例訪問了外部類的私有成員。