这个和.this的区别?

时间:2014-09-13 13:21:49

标签: java function methods reference

调用函数时this.this之间有什么区别?而且,使用thisthis.时会发生什么?

示例:

class reference
{
   public void object()
   {
      reference obj = new reference();
      this.obj();
   }
}

1 个答案:

答案 0 :(得分:5)

当你有一个非静态嵌套类需要引用它的封闭类的实例时,Class.this语法很有用。它仅用于有内部类的情况,并且需要引用封闭的班级

在实例方法或构造函数中,this是对当前对象的引用 - 正在调用其方法或构造函数的对象。您可以使用this从实例方法或构造函数中引用当前对象的任何成员。

一个很好的例子

   public class TestForThis {

    String name;
    public void setName(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    class TestForDotThis {
        String name ="in";
        String getName() {
            return TestForThis.this.name;
        }
    }

    public static void main(String[] args) {
        TestForThis t = new TestForThis();
        t.setName("out");
        System.out.println(t.getName());
        TestForThis.TestForDotThis t1 = t.new TestForDotThis();
        System.out.println(t1.getName());
    }
}

输出

out
out