这指的是当前对象。
每个非静态方法在对象的上下文中运行。所以如果你有这样的类:
public class MyThisTest {
private int a;
public MyThisTest() {
this(42); // calls the other constructor
}
public MyThisTest(int a) {
this.a = a; // assigns the value of the parameter a to the field of the same name
}
public void frobnicate() {
int a = 1;
System.out.println(a); // refers to the local variable a
System.out.println(this.a); // refers to the field a
System.out.println(this); // refers to this entire object
}
public String toString() {
return "MyThisTest a=" + a; // refers to the field a
}
}
然后调用frobnicate()在新的MyThisTest()将打印
1
42
MyThisTest a=42
所以有效地你使用它的多种事情:
>澄清你正在谈论一个字段,当还有其他与字段相同的名称>将当前对象作为一个整体>在构造函数中调用当前类的其他构造函数