溫馨提示×

java 內(nèi)部類如何調(diào)用外部類

小樊
81
2024-11-15 09:44:50
欄目: 編程語言

在 Java 中,內(nèi)部類是定義在外部類內(nèi)部的類。要讓內(nèi)部類訪問外部類的成員(包括方法、屬性和其他內(nèi)部類),你可以使用以下方法:

  1. 內(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();
    }
}
  1. 如果內(nèi)部類是靜態(tài)的(使用 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)成員。

0