首頁 >Java >java教程 >Java中如何從內部類別存取外部類別實例?

Java中如何從內部類別存取外部類別實例?

DDD
DDD原創
2025-01-02 16:55:41719瀏覽

How Can I Access the Outer Class Instance from an Inner Class in Java?

從內部類別檢索外部類別實例

考慮以下程式碼,其中的目標是從內部類別訪問外部類別物件內部類別實例:

public class OuterClass {

    public class InnerClass {
        private String name = "Peakit";
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        InnerClass inner = outer.new InnerClass();
        // Retrieve the outer class instance...
        OuterClass anotherOuter = ?? ;
    }
}

存取外部類別實例在內部類別中

在內部類別中,您可以使用OuterClass.this 表達式來引用封閉實例。這種技術稱為“Qualified This”,可讓您從內部類別內部存取外部類別的成員。

public OuterClass getOuter() {
    return OuterClass.this;
}

在不修改內部類別的情況下存取外部類別實例

如果您沒有能力修改內部類別,則可以透過封閉類別的封包層級存取來存取外部類別實例實例字段,用this$0 表示。

OuterClass outerRef = inner.this;

附加說明

  • Java 可以辨識名稱 this$0,儘管在Java 語言規範中。
  • 通常認為避免依賴套件層級存取來存取封閉實例。
  • 如果您可以控制其修改,則向內部類別新增方法以明確傳回外部類別實例是一個更強大的解決方案。

以上是Java中如何從內部類別存取外部類別實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn