this关键字用于引用当前对象成员,解决参数与字段同名冲突(如this.name=name)、调用本类其他构造器(必须首行)、返回当前对象实现链式调用、以及在内部类中访问外部类同名成员(outerclass.this.field)。

在 Java 中,this 关键字用于明确引用当前对象的成员(字段、方法、构造器),尤其在局部变量与成员变量同名时,能清晰区分作用域,避免歧义。
解决成员变量与参数名冲突
当构造器或方法的参数名与类的成员变量名相同时,不加 this 会导致赋值失败(实际是给参数自身赋值)。
- 错误写法:
name = name;—— 实际是参数赋给自己,成员变量未被修改 - 正确写法:
this.name = name;—— 明确将参数值赋给当前对象的成员变量
在构造器中调用本类其他构造器
this(...) 必须放在构造器第一行,用于复用初始化逻辑,避免代码重复。
- 适用于多个重载构造器间存在公共初始化步骤的场景
- 注意:不能和
super(...)同时出现;只能调用一个其他构造器 - 示例:
this(name, 0);调用含两个参数的构造器,并为 age 默认设 0
返回当前对象引用实现链式调用
让方法返回 this,可支持连续调用多个实例方法,提升 API 流畅性。
- 常见于 Builder 模式或 Fluent API 设计
- 每个 setter 方法末尾写
return this; - 调用时形如:
obj.setName("A").setAge(25).print();
在内部类中访问外部类成员
非静态内部类中,若内部类也有同名成员,可用 OuterClass.this.field 明确访问外部类字段。
- 例如外部类有
int x = 10;,内部类也有x,则OuterClass.this.x指外部类的x - 普通情况(无重名)下可省略,但重名时必须显式指定
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











