this关键字用于引用当前对象,解决成员变量与参数名冲突(如this.name=name)、构造器链式调用(this()须首行)、返回当前对象支持链式调用(return this)、以及内部类中访问外部类成员(outerclass.this.field)。

在 Java 中,this 关键字用于明确引用当前对象本身,主要解决成员变量与参数名冲突、构造器链式调用、以及在方法中返回当前对象等场景。
区分同名的成员变量和形参
当构造方法或 setter 方法的参数名与成员变量相同时,不加 this 会导致赋值失效(实际是给参数重新赋值)。
- 正确写法:
this.name = name;表示把参数name的值赋给当前对象的成员变量name - 错误写法:
name = name;是将参数赋给自己,成员变量未被修改
在构造器中调用本类其他构造器
使用 this(...) 可复用已有构造逻辑,避免重复代码,但必须放在构造器第一行。
- 例如:一个带全参的构造器可调用只含必要参数的构造器,再单独设置其余字段
- 注意:this() 和 super() 不能共存于同一构造器中
将当前对象作为参数或返回值传递
在链式调用(如 Builder 模式或 fluent API)中,常通过 this 返回当前实例,支持连续调用。
- 例如:
return this;在 setter 方法末尾,使obj.setName("A").setAge(25)成为可能 - 也可将 this 传给其他方法或监听器,便于回调时识别调用者
在内部类中访问外部类的成员
非静态内部类中,若内部类有同名变量,可用 OuterClass.this.field 明确访问外部类成员。
- 例如:
Outer.this.count可绕过内部类变量遮蔽,直接读取外部类字段 - 这种写法只在需要消除歧义时使用,不是常规用法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











