java这个关键字在构造函数

时间:2016-09-26 16:34:16

标签: 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 个答案:

答案 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,因为我们的变量ab的构造函数范围名称隐藏在参数a和{{的名称后面1}}。 b仅表示该类的当前对象。

修改 使用this关键字创建对象。 new变量只是对象的引用。在类方法中,我们可以使用x引用当前对象,并在其他地方引用我们的引用。因此,当您的老师讲述this引用this时,他的意思是引用x可访问的对象。