this代表当前对象引用,用于解决命名冲突、构造器委托、链式调用、参数传递及内部类访问;不可赋值,不能在静态上下文中使用,构造器中调用this()须为首句。

Java 中的 this 关键字代表当前对象的引用,它不是变量,也不能被赋值或修改,而是一个由 JVM 自动提供的隐式引用。它的核心价值在于明确“谁在调用”“操作的是哪个对象”,尤其在命名冲突、构造复用和链式调用等场景中不可或缺。
区分成员变量与参数/局部变量
这是最常见也最容易出错的使用场景。当方法参数名与成员变量同名时,Java 会优先使用局部作用域内的变量(即参数),导致成员变量未被赋值。
例如:
public class BankAccount {
private double balance;
public void deposit(double balance) {
this.balance += balance; // this.balance 是成员变量,右边 balance 是参数
}
}
- 不写 this:balance = balance; 实际是参数给自己赋值,成员变量不变
- 写了 this.balance:明确指向当前对象的实例字段
- 即使没有同名冲突(如 getter 方法中 return this.balance),显式使用 this 也能增强可读性,表明访问的是对象状态
在一个构造方法中调用另一个构造方法
用于减少重复初始化代码,实现构造器之间的委托。这种调用必须是构造方法中的第一条语句,且只能出现一次。
public class Product {
private String name;
private double price;
private String category;
public Product(String name, double price) {
this(name, price, "General"); // 调用三参数构造器
}
public Product(String name, double price, String category) {
this.name = name;
this.price = price;
this.category = category;
}
}
- 不能在普通方法中用 this(),只限于构造方法内部
- 不能在静态上下文(如 static 方法、static 块)中使用 this
- 避免循环调用,比如 A 构造器调 B,B 又调回 A,编译会报错
返回当前对象以支持链式调用
让方法调用可以连续进行,提升 API 的流畅性和表达力。常见于 Builder 模式、工具类(如 StringBuilder、Optional)中。
public class UserBuilder {
private String name;
private int age;
public UserBuilder setName(String name) {
this.name = name;
return this; // 返回当前 builder 实例
}
public UserBuilder setAge(int age) {
this.age = age;
return this;
}
public User build() { return new User(name, age); }
}
- 调用方式:new UserBuilder().setName("Tom").setAge(25).build();
- 每个 setter 都返回 this,所以能串起来
- 注意返回类型需声明为当前类(或其父类/接口),不能是 void
作为参数传递当前对象
当你需要把“自己”交给别的方法或对象处理时,this 就是那个自然、直接的引用。
public class Logger {
private String tag;
public Logger(String tag) { this.tag = tag; }
public void logTo(Reporter reporter) {
reporter.receive(this); // 把当前 Logger 实例传过去
}
}
public class Reporter {
public void receive(Logger logger) {
System.out.println("Received: " + logger.tag);
}
}
- 适用于回调、监听器注册、事件分发等场景
- 在内部类中,有时还需用 OuterClass.this 明确访问外部类实例
- 不能将 this 传递给尚未完成构造的对象(如在构造器中启动新线程并传入 this),否则可能引发安全发布问题
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











