在Java中,this 是一个关键字,它代表当前对象,其用法主要有以下几种:
区分成员变量和局部变量
当成员变量与局部变量同名时,使用 this 来明确指定访问的是成员变量。例如:
class Person {
private String name;
public Person(String name) {
this.name = name; // 使用this区分成员变量和局部变量
}
}
调用本类的构造方法
在一个构造方法中,可以使用 this() 来调用本类的其他构造方法,以实现构造方法的复用。例如:
class Person {
private String name;
private int age;
public Person(String name) {
this.name = name;
}
public Person(String name, int age) {
this(name); // 调用本类中带有一个参数的构造方法
this.age = age;
}
}
作为方法的返回值
可以在方法中返回 this,以便实现方法的链式调用。例如:
class Person {
private String name;
public Person setName(String name) {
this.name = name;
return this;
}
public String getName() {
return name;
}
}
// 链式调用示例
Person person = new Person().setName("John").setName("Doe");
代表当前对象
在实例方法中,this 代表当前对象,可以通过 this 访问当前对象的成员变量和方法。例如:
class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public void printName() {
System.out.println("The name is: " + this.name); // 使用this访问成员变量
}
}
需要注意的是,this 只能在实例方法和构造方法中使用,不能在静态方法中使用,因为静态方法不属于任何特定的对象。