天天看点

java程序题库汇总--不断更新

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就表示的是这个对象的成员变量。