匿名內部類別透過其 this 關鍵字存取外部類別成員變量,包括私人變量,透過 this 存取外部類別成員變數就像匿名內部類別本身聲明了這些變數一樣。
#匿名內部類別是不帶有名稱的內部類,通常用於建立一次性使用的類別。匿名內部類別可以存取其外部類別的成員變量,包括私有變數。
存取機制:
匿名內部類別透過其 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
。
要注意的是:
以上是Java 匿名內部類別是如何存取外部類別的成員變數的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!