this 是 java 中代表当前对象引用的关键字,用于区分同名成员变量与参数、构造器间调用、传递当前对象、实现链式调用。

this 是 Java 中的一个关键字,代表当前对象的引用,即调用该方法或构造器的那个对象本身。它常用于区分成员变量与参数名冲突、在构造器中调用其他构造器、将当前对象作为参数传递等场景。
解决成员变量与形参同名的问题
当方法或构造器的参数名和类的成员变量名相同时,Java 会优先使用局部变量(即参数),此时用 this.成员变量名 明确指代当前对象的成员变量。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name; // this.name 指成员变量,name 指参数
this.age = age; // this.age 指成员变量,age 指参数
}
}
在构造器中调用本类其他构造器
使用 this(...) 可以在一个构造器中调用同一个类的另一个构造器,必须放在第一行,且只能出现一次。
public class Person {
private String name;
private int age;
public Person() {
this("未知", 0); // 调用两个参数的构造器
}
public Person(String name) {
this(name, 18); // 调用两个参数的构造器
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
将当前对象作为参数传递给其他方法
有时需要把当前对象传给另一个方法(比如监听器注册、比较操作、回调等),直接传 this 即可。
public class Button {
private String label;
public Button(String label) {
this.label = label;
}
public void registerClickListener(ClickListener listener) {
listener.onClick(this); // 把当前 Button 对象传过去
}
}
// 使用示例
Button btn = new Button("确定");
btn.registerClickListener(new ClickListener() {
public void onClick(Button b) {
System.out.println("点击了:" + b.label);
}
});
返回当前对象实现链式调用
在 setter 方法中返回 this,可以让多个 setter 连续调用,提升代码可读性。
public class Person {
private String name;
private int age;
public Person setName(String name) {
this.name = name;
return this; // 返回当前对象
}
public Person setAge(int age) {
this.age = age;
return this;
}
}
// 使用
Person p = new Person().setName("张三").setAge(25);
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











