首頁  >  文章  >  Java  >  Java 匿名內部類別是如何存取外部類別的成員變數的?

Java 匿名內部類別是如何存取外部類別的成員變數的?

WBOY
WBOY原創
2024-05-01 09:27:021176瀏覽

匿名內部類別透過其 this 關鍵字存取外部類別成員變量,包括私人變量,透過 this 存取外部類別成員變數就像匿名內部類別本身聲明了這些變數一樣。

Java 匿名内部类是如何访问外部类的成员变量的?

Java 匿名內部類別存取外部類別成員變數的機制

#匿名內部類別是不帶有名稱的內部類,通常用於建立一次性使用的類別。匿名內部類別可以存取其外部類別的成員變量,包括私有變數。

存取機制:

匿名內部類別透過其 this 關鍵字來存取外部類別的成員變數。 this 關鍵字指向匿名內部類別的實例,它實際上是其外部類別的實例。因此,this 可以直接存取外部類別的成員變量,就像匿名內部類別本身聲明了這些變數一樣。

實戰案例:

我們建立一個具有私有成員變數secret 的外部類別OuterClass類別,並建立一個匿名內部類別來存取該變數:

public class OuterClass类 {
    private int secret = 42;

    public static void main(String[] args) {
        OuterClass类 outer = new OuterClass类();
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类的 secret:" + this.secret);
            }
        };
        r.run();
    }
}

當執行這個程式時,它將輸出:"匿名內部類別的secret:42"。這是因為匿名內部類別能夠透過 this 存取外部類別 OuterClass類別 的私有變數 secret

要注意的是:

  • 匿名內部類別只能存取外部類別的成員變量,不能存取其方法。
  • 如果外部類別的成員變數是 final 的,則匿名內部類別只能讀取而不可以修改該變數。

以上是Java 匿名內部類別是如何存取外部類別的成員變數的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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