this关键字用于引用当前对象实例,主要用途包括:①区分同名成员变量与参数;②调用本类其他构造方法(必须首行);③传递当前对象作参数;④返回this实现链式调用。

在 Java 中,this 关键字用于明确引用当前对象的实例,常用于区分成员变量与参数名冲突、调用本类其他构造方法、或作为参数传递当前对象本身。
解决成员变量与形参同名的歧义
当构造方法或普通方法中参数名与成员变量名相同时,编译器无法自动判断应赋值给哪个变量。此时用 this.变量名 明确指向当前对象的成员变量。
- 例如:public Person(String name) { this.name = name; } —— 左边 this.name 是成员变量,右边 name 是传入的参数
- 若省略 this,编译器会把 name = name; 当作自赋值,成员变量实际未被初始化
调用本类的其他构造方法(构造器链)
在一个构造方法中,可用 this(...) 调用同一类中的其他构造方法,必须放在第一行,且只能出现一次。
- 例如:public Person() { this("未知", 0); } —— 复用带两个参数的构造逻辑
- 注意:this() 和 super() 不能共存于同一个构造方法中
- 这种写法可减少重复代码,提升构造逻辑的复用性
将当前对象作为参数传递给其他方法
有时需要把当前对象整体传给另一个方法(比如监听注册、回调、比较操作),这时直接使用 this 即可。
立即学习“Java免费学习笔记(深入)”;
- 例如:eventHandler.registerListener(this); —— 把当前对象注册为事件监听者
- 再如:if (other.equals(this)) { ... } —— 在重写的 equals 方法中用于自比较
- 注意:确保接收方能正确处理该类型,避免空指针或类型不匹配
返回当前对象以支持链式调用
在 setter 方法中返回 this,能让方法调用形成链式风格,提升代码可读性和流畅度。
- 例如:public Person setName(String name) { this.name = name; return this; }
- 调用时可写成:person.setName("张三").setAge(25).setEmail("zhang@example.com");
- 前提是所有相关方法都返回 this,且设计上允许连续修改


















