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面向对象编程的基础概念,正确使用可以让代码更清晰。

powered by Gitbook© 2025 编外计划 | 最后修改: 2025-07-28 16:25:54

results matching ""

    No results matching ""