在 java 中,this 关键字主要用于指代当前对象实例。它最常见的用法是区分成员变量与局部变量,通过 this.variablename 显式引用当前对象的属性;此外,还可以调用本类的其他构造方法(如 this())或作为参数传递当前对象引用。

如何区分同名成员变量与局部变量
当构造方法或方法的参数名与类成员变量名相同时,直接使用变量名会指向局部变量。此时必须使用 this 来明确指定赋值给当前对象的成员变量。

public class User {
private String name;
public User(String name) {
// 左侧 this.name 是成员变量,右侧 name 是参数
this.name = name;
}
public void printName() {
System.out.println(this.name);
}
}
// 测试代码
User user = new User("Alice");
user.printName(); // 输出: Alice如何在构造方法中调用其他构造方法
在一个构造方法内部,可以使用 this() 语法调用本类的另一个构造方法。这通常用于减少代码重复,实现构造函数的重载链式调用。注意该调用必须是构造方法的第一行语句。
Java开发手册规约集合,基于阿里巴巴Java开发手册(嵩山版)。 涵盖7大维度:编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约。
立即学习“Java免费学习笔记(深入)”;

public class Product {
private String id;
private String name;
// 全参构造
public Product(String id, String name) {
this.id = id;
this.name = name;
}
// 无参构造,委托给全参构造
public Product() {
this("default_id", "default_name");
}
}
// 测试代码
Product p1 = new Product("1", "Laptop");
Product p2 = new Product();
System.out.println(p2.getId()); // 输出: default_id将当前对象作为参数传递给其他方法
在某些场景下,需要将当前正在执行的对象实例传递给其他方法或构造函数。此时可以直接使用 this 作为实参。这在观察者模式、回调机制或需要保持对象状态引用的场景中非常常见。

















