匿名内部类通过其 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中文网其他相关文章!