Timer.this
这个this代表啥?对象吗?为服么要这么写

解决方案 »

  1.   

    public class Hello {
        public void print() {
            System.out.println("Hello.print()");
        }    class InnerClass {
            public void print() {
                System.out.println("InnerClass.print()");
            }        public void foo() {
                print();
                Hello.this.print(); // 因为这个类自己已经有了print()方法,如果想调用它的外部类Hello.print的话,需要使用Hello.this.print();
            }
        }    public static void main(String[] args) {
            Hello hello = new Hello();
            Hello.InnerClass innerClass = hello.new InnerClass();
            innerClass.foo();
        }
    }
      

  2.   

    差不多,"类名.this.属性或方法"在这个类的内部就可以这么用,只是一般省略类名,即"this.属性或方法",
    但当在该类的内部类中使用且要用的方法或属性类型想同,不能省略,以区分调用的是哪个,就是二楼这情况