3

我已经读过,在 Java 中,您不必将this关键字显式绑定到对象,它是由解释器完成的。它与 Javascript 相反,你总是必须知道this的值。但是 Java 中的this在哪里指向类或对象?还是有所不同?这个问题是我尝试理解基本 OO 概念和设计模式的一部分,因此我可以将它们应用于 Javascript。谢谢你。

4

7 回答 7

8

在 Java 中,this总是指一个对象而不是一个类。

于 2012-05-19T15:03:20.390 回答
1

在java中this is refer Current object

public class Employee{

String name,adress;

Employee(){

 this.name="employee";
 this.address="address";

}

}
于 2012-05-19T15:04:53.227 回答
1

this指当前对象。

在实例方法或构造函数中,this 是对当前对象的引用——调用其方法或构造函数的对象。您可以使用 this 从实例方法或构造函数中引用当前对象的任何成员。

于 2012-05-19T15:04:56.377 回答
1

Java 语言规范指出:

当用作主要表达式时,关键字 this 表示一个值,该值是对调用实例方法的对象(第 15.12 节)或正在构造的对象的引用。

即它总是指向一个对象,而不是一个类。

于 2012-05-19T15:05:50.327 回答
1

在java中'this'是一个关键字,基本上用来指代当前对象。在下面的示例中,setter 方法使用“this”来设置当前对象的名称和年龄的值。

public class Person {

  String name;
  int age;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public static void main(String[] args) {
    Person p = new Person();
    p.setName("Rishi");
    p.setAge(23);
    System.out.println(p.getName() + " is " + p.getAge() + " years old");
  }
}
于 2013-01-07T15:20:33.590 回答
0

从官方文档(在这里找到):

在实例方法或构造函数中,this是对当前对象的引用——正在调用其方法或构造函数的对象。您可以使用 this 从实例方法或构造函数中引用当前对象的任何成员。

这意味着在任何类的代码中,当您编写 时this,您指定您指的是当前对象这一事实。

作为旁注,您不能this与静态字段或方法一起使用,因为它们不属于任何特定对象(类的实例)。

于 2012-05-19T15:05:37.633 回答
0

this 关键字总是用于引用当前类的对象。其中 this() 用于当前的类构造函数。例如:

    class circle {
        
        public int radius;
        public Circle() {
           this.radius = 10; //any default value
        }

        public Circle(int radius) {
           this.radius = radius  // here this.radius will set instance variable radius
        }
        public int areaOfCircle() {
              return 3.14*radius*radius;
        }
    }
于 2020-10-20T05:56:28.130 回答