this 关键字
概述
this
关键字表示当前对象的引用,用于区分实例变量和参数、调用当前类的方法和构造器。
语法格式
this.variable // 访问当前对象的变量
this.method() // 调用当前对象的方法
this(parameters) // 调用当前类的其他构造器
return this; // 返回当前对象(链式调用)
基本用法
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name; // 区分参数和成员变量
this.age = age;
}
public Student(String name) {
this(name, 0); // 调用另一个构造器
}
public void setName(String name) {
this.name = name; // 明确访问成员变量
}
public Student setAge(int age) {
this.age = age;
return this; // 支持链式调用
}
public void introduce() {
System.out.println("我是" + this.name + ",今年" + this.age + "岁");
}
public void study() {
this.introduce(); // 调用当前对象的方法
System.out.println(this.name + "正在学习");
}
}
public class ThisExample {
public static void main(String[] args) {
Student student = new Student("张三", 20);
// 链式调用
student.setAge(21).introduce();
student.study();
}
}
常见使用场景
public class Person {
private String name;
private int age;
// 1. 构造器中区分参数和成员变量
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 2. setter方法中的参数命名
public void setName(String name) {
if (name != null && !name.isEmpty()) {
this.name = name;
}
}
// 3. 方法返回当前对象(Builder模式)
public Person withAge(int age) {
this.age = age;
return this;
}
// 4. 传递当前对象给其他方法
public void registerToService() {
SomeService.register(this);
}
}
this关键字是Java面向对象编程的基础概念,正确使用可以让代码更清晰。