Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java构造函数中的这个关键字_Java - Fatal编程技术网

java构造函数中的这个关键字

java构造函数中的这个关键字,java,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){

我现在正在上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 

           }
}

我的老师说
xab=newab(4,5)
会让调用构造函数的x对象传入构造函数,用
这个关键字
引用它,那么像
new Ab(2,4)这样的匿名类呢现在,这个关键字所指的是什么?在我看来,在构造函数创建对象并返回对变量的引用之前,构造函数内部的
这个
与引用变量没有任何联系。

您必须键入
这个
,因为在构造函数的作用域中,变量的名称
a
b
隐藏在参数名称后面
a
b
<代码>此
仅表示类的当前对象

编辑: 对象是使用
new
关键字创建的。
x
变量只是对对象的引用。在类方法中,我们可以使用
this
引用当前对象,并且必须在其他地方进行引用。所以当你的老师告诉你关于
这个
指的是
x
时,他的意思是指可以通过
x
访问的对象

newab(2,4)
这样的匿名类呢

这不是匿名类。它是一个表达式,用于创建AB类型的新对象。该表达式的值是对该对象的引用。AB构造函数中的
this
值是对对象的引用。下面的
x
值是对对象的引用。它们都是对同一对象的引用

Ab x = new Ab(4,5); // this is where my teacher confused me
在我看来,在构造函数创建对象并返回对变量的引用之前,这个内部构造函数没有与引用变量的链接

构造函数中的
无需引用其他参考变量。当构造函数返回时,它指向与
x
相同的对象


引用不是对象本身。您可以将其视为指向对象的多个指针之一

this
引用当前对象。您的类定义了字段
intx
,但在构造函数中您使用的是
this.a
。您的意思是
inta
this.a
,或者
intx
this.x
。哪一个是对的?为什么你的代码格式是这样的?哦,我错了,就是这个。a@markspace我是stackoverflow新手,对此很抱歉。如果你能阅读我解释的最后一段内容,那么在构造函数完成创建对象并返回对x变量的引用之前,构造函数中的“this keyword”是否与引用变量x有关?@RidaBatool我编辑了我的答案,向你解释了一切,如果它有帮助的话,请接受它作为正确答案!非常感谢你。我得到了正确的答案,现在为我澄清了这一点,非常感谢你