不是重复的,这是一个语义问题?
哥伦比亚大学的一位教授说,关键字this
,指向当前class
(见第 21 页)。我 99% 确定这是不正确的。
我想说它传递给 aclass instance
或 an object
。this
有没有一种首选的方式来简洁地说出什么意思。
谢谢,我只是希望我的笔记是准确的。
this
指的是current object
。
例如
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
}
}
不言自明的输出:
1
42
MyThisTest a=42
this
肯定是指当前实例
您可以将其视为“当前类”。但我喜欢将其视为对使用“this”的对象实例的引用。
因此,如果您有类 A 并创建了两个实例 A1 和 A2,当您在 A2 中执行的方法调用中引用“this”时,“this”指的是实例 A2,而不是类 A。
清如泥?