java构造函数中的这个关键字
我现在正在上java课,今天我的老师说了一些我的大脑不接受的话,我可能错了。以下代码
class Ab{
int x;
int b;
public Ab(int x, int b){
this.x = x;
this.b = b;
}
public static void main(String[] args){
Ab x = new Ab(4,5); // this is where my teacher confused me
}
}
我的老师说x Ab = new AB(4,5);
会让调用构造函数的x对象通过构造函数传递给this keyword
来引用它,那么像new Ab(2,4);
这样的匿名类呢this keyword
会引用什么呢?在我看来this
在构造函数创建对象并返回对变量的引用之前,构造函数内部没有与引用变量的链接
# 1 楼答案
这不是一个匿名类。它是一个表达式,用于创建AB类型的新对象。该表达式的值是对该对象的引用。AB构造函数中的
this
值是对对象的引用。下面x
的值是对对象的引用。它们都是对同一个对象的引用构造函数中的
this
不需要引用另一个引用变量。当构造函数返回时,它指向与x
相同的对象引用不是对象本身。你可以把它想象成指向一个对象的多个指针之一
# 2 楼答案
您必须键入
this
,因为在构造函数的作用域中,变量a
和b
隐藏在参数a
和b
的名称后面this
表示类的当前对象编辑: 对象是用
new
关键字创建的。x
变量只是对对象的引用。在类方法中,我们可以用this
引用当前对象,而在其他地方我们必须进行引用。所以当你的老师告诉你this
指的是x
时,他指的是可以通过x
访问的对象