“这个”指向什么?

时间:2013-09-29 12:44:49

标签: java

不重复,这是一个语义问题吗?

哥伦比亚大学的一位教授说,关键字this指向当前的classSee Page 21)。我99%肯定这不正确。

我想说它传递给class instanceobject。是否有一种首选的方式来说明this简明扼要的内容。

谢谢,我只是希望我的笔记准确无误。

5 个答案:

答案 0 :(得分:7)

来自Oracle docs

  

关键字 this 只能在实例方法的正文中使用,   实例初始化器或构造函数,或者在初始化器中   类的实例变量。如果它出现在其他任何地方,a   发生编译时错误。

...

  

当用作主表达式时,关键字this表示值   这是对实例方法所针对的对象的引用   调用(§15.12),或者被构造的对象。

来自wiki

  

:此

     

用于表示它出现的类的实例。这个   可用于访问类成员和作为当前的引用   实例。 关键字也用于转发来自一个的呼叫   类中的构造函数到同一个类中的另一个构造函数。

答案 1 :(得分:1)

“这个”指向什么?

this是指current object

E.g

public class MyThisTest {
  private int a;

  public MyThisTest() {
    this(42); // calls the other constructor
  }

  public MyThisTest(int a) {
    this.a = a; // assigns the value of the parameter a to the field of the same name
  }

  public void frobnicate() {
    int a = 1;

    System.out.println(a); // refers to the local variable a
    System.out.println(this.a); // refers to the field a
    System.out.println(this); // refers to this entire object
  }

  public String toString() {
    return "MyThisTest a=" + a; // refers to the field a
  }
}

自我解释输出:

1
42
MyThisTest a=42

答案 2 :(得分:0)

thisOO programming languages用来引用current class实例的关键字。 它隐式地获取当前类的对象或实例的引用或地址。

JAVA

中的

this

希望这有帮助

答案 3 :(得分:0)

您可以将其视为“当前班级”。但我喜欢将它视为对使用“this”的对象实例的引用。

因此,如果您有A类并且创建了两个实例A1和A2,当您在A2中执行的方法调用中引用“this”时,“this”指的是实例A2,而不是A类。

清除泥土?

答案 4 :(得分:0)

this肯定是指当前的实例