下面的代码执行时会有什么样的输出呢,4、5、6还是10。
package test;
public class MeaningOfThis {
public final int value = 4;
public void doIt() {
int value = 6;
Runnable r = new Runnable() {
public final int value = 5;
public void run() {
int value = 10;
System.out.println(this.value);
}
};
r.run();
}
public static void main(String... args) {
MeaningOfThis m = new MeaningOfThis();
m.doIt();
}
}
答案:5
分析: Runnable r = new Runnable() {}是个匿名内部类,System.out.println(this.value);中的this指向的是该匿名内部类。this.value便是匿名内部类中的成员变量value