在 Java 中,內(nèi)部類是定義在外部類內(nèi)部的類。要讓內(nèi)部類訪問外部類的成員(包括方法、屬性和其他內(nèi)部類),你可以使用以下方法:
public class OuterClass {
public int outerData = 10;
public void outerMethod() {
System.out.println("This is an outer method.");
}
public class InnerClass {
public void accessOuterMembers() {
System.out.println("outerData: " + outerData);
System.out.println("outerMethod(): " + outerMethod());
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.accessOuterMembers();
}
}
static
關(guān)鍵字修飾),那么它將無法直接訪問外部類的非靜態(tài)成員。要訪問這些成員,你需要通過外部類的實例。public class OuterClass {
public int outerData = 10;
public void outerMethod() {
System.out.println("This is an outer method.");
}
public static class InnerClass {
public void accessOuterMembers(OuterClass outer) {
System.out.println("outerData: " + outer.outerData);
outer.outerMethod();
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.accessOuterMembers(outer);
}
}
在這兩個示例中,我們展示了如何在內(nèi)部類中訪問外部類的成員。第一個示例中的內(nèi)部類不是靜態(tài)的,因此它可以直接訪問外部類的所有公共成員。第二個示例中的內(nèi)部類是靜態(tài)的,因此它需要通過外部類的實例來訪問非靜態(tài)成員。