我目前正在上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
内部构造函数没有与引用变量的链接,直到构造函数创建对象并返回对变量的引用。
答案 0 :(得分:1)
如
这样的匿名类呢?new Ab(2,4)
;
这不是一个匿名类。它是一个表达式,用于创建AB类型的新对象。该表达式的值是对象的引用。 AB构造函数中this
的值是对象的引用。并且下面x
的值是对象的引用。它们都是对同一个对象的引用。
Ab x = new Ab(4,5); // this is where my teacher confused me
在我看来,这个内部构造函数没有与引用变量的链接,直到构造函数创建对象并返回对变量的引用。
构造函数中的this
无需引用另一个引用变量。当构造函数返回时,它指向与x
相同的对象。
引用不是对象本身。您可以认为它可能是指向对象的多个指针之一。
答案 1 :(得分:0)
您必须输入this
,因为我们的变量a
和b
的构造函数范围名称隐藏在参数a
和{{的名称后面1}}。 b
仅表示该类的当前对象。
修改强>
使用this
关键字创建对象。 new
变量只是对象的引用。在类方法中,我们可以使用x
引用当前对象,并在其他地方引用我们的引用。因此,当您的老师讲述this
引用this
时,他的意思是引用x
可访问的对象。