关键词 `this` 是一个引用,它用于表示当前对象的引用。在 Java 中,`this` 可以在以下几种情况下使用:
1. 当成员变量与方法参数名相同,使用 `this` 关键词可用于区分它们。例如:
```java
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
}
```
在上面的例子中,`this.name` 表示对象的成员变量 `name`,而 `name` 表示方法的参数。
2. 在一个构造方法中,`this` 可以调用当前对象的其他构造方法。这个特性叫做构造方法重载。例如:
```java
public class Person {
private String name;
private int age;
public Person() {
this("John Doe", 18); // 调用下面定义的有参数的构造方法
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
```
在上面的例子中,第一个无参数的构造方法会调用第二个有参数的构造方法,并传入默认的名字和年龄。
3. 在匿名内部类中,`this` 关键词可以用于引用当前匿名内部类的实例。例如:
```java
public class Button {
public void onClick() {
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
System.out.println(this); // 输出匿名内部类的实例信息
}
};
}
}
```
在上面的例子中,`this` 关键词用于引用当前的匿名内部类实例,可以在 `actionPerformed` 方法中使用。
总之,`this` 关键词的作用是用于引用当前对象,可以用于区分成员变量与方法参数名相同的情况,调用其他构造方法,以及引用匿名内部类的实例。