有 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){
               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在构造函数创建对象并返回对变量的引用之前,构造函数内部没有与引用变量的链接


共 (2) 个答案

  1. # 1 楼答案

    what about anonymous classes like new Ab(2,4);

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

    Ab x = new Ab(4,5); // this is where my teacher confused me
    

    in my point of view this inside constructor has no link with reference variable until constructor create the object and return the reference to variable.

    构造函数中的this不需要引用另一个引用变量。当构造函数返回时,它指向与x相同的对象

    引用不是对象本身。你可以把它想象成指向一个对象的多个指针之一

  2. # 2 楼答案

    您必须键入this,因为在构造函数的作用域中,变量ab隐藏在参数ab的名称后面this表示类的当前对象

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