3.程序输出题
第一题:关于this和匿名类
public class MeaningOfThis {
public final int value = 4;
public void doIt() {
int value = 6;
Runnable r = new Runnable() {
public final int vlaue = 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:首先this表示当前的对象,那么这个对象是哪一个?就看确定调用this的是哪一个方法(run方法),
这个方法所在的类(实现了Runnable接口的匿名类),那个这个对象就是这个匿名类的一个实例,那个this.value就表示的是这个对象的成员变量。