Java 中的 this 关键字详解

  1. 引用当前类实例变量 在Java类中,可以使用 this 关键字来引用当前类的实例变量,例如:
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在上面的代码中,this.name 和 this.age 引用了当前对象的 name 和 age 实例变量。

  1. 调用当前类方法(隐式) 在Java类中,可以使用 this 关键字来调用当前类的方法。在方法内部,可以省略 this 关键字来调用类中的其他方法,例如:
public class Person {
    private String name;
    private int age;
    
    public void setName(String name) {
        this.name = name;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public void setPerson(String name, int age) {
        setName(name);
        setAge(age);
    }
}

在上面的代码中,setPerson 方法内部使用 setName 和 setAge 方法时省略了 this 关键字,但其实是在调用当前类的方法。

  1. 调用当前类构造函数 在Java类中,可以使用 this 关键字来调用当前类的构造函数。在一个构造函数内部,可以通过调用其他构造函数来初始化当前对象,例如:
public class Person {
    private String name;
    private int age;
    
    public Person() {
        this("Unknown", 0);
    }
    
    public Person(String name) {
        this(name, 0);
    }
    
    public Person(int age) {
        this("Unknown", age);
    }
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。

  1. 方法调用中的参数传递 在Java方法调用中,可以使用 this 关键字将当前对象作为参数传递给其他方法,例如:
public class Person {
    private String name;
    private int age;
    
    public void print() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
    
    public void printPerson() {
        print(this);
    }
    
    public void print(Person person) {
        person.print();
    }
}

在上面的代码中,printPerson 方法使用 this 关键字将当前对象作为参数传递给 print 方法。

  1. 构造函数调用中的参数传递 在Java构造函数调用中,可以使用 this 关键字将当前对象作为参数传递给其他构造函数,例如:
public class Person {
    private String name;
    private int age;
    
    public Person() {
        this("Unknown", 0);
    }
    
    public Person(String name) {
        this(name, 0);
    }
    
    public Person(int age) {
        this("Unknown", age);
    }
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。

  1. 从方法返回当前类实例 在Java方法中,可以使用 this 关键字从方法中返回当前对象,例如:
public class Person {
    private String name;
    private int age;
    
    public Person setName(String name) {
        this.name = name;
        return this;
    }
    
    public Person setAge(int age) {
        this.age = age;
        return this;
    }
}

在上面的代码中,setName 和 setAge 方法返回当前对象,这样可以使用链式调用来设置多个属性,例如:

Person person = new Person().setName("Alice").setAge(20);

这样,person 对象的 name 属性为 "Alice",age 属性为 20。

总结:

Java 中的 this 关键字主要用于引用当前类的实例变量、调用当前类的方法、调用当前类的构造函数、作为方法调用中的参数传递、在构造函数调用中作为参数传递、以及从方法返回当前类实例。这些用法可以让我们更方便地编写代码并避免一些常见的错误。

展开阅读全文

页面更新:2024-03-13

标签:关键字   初始化   变量   详解   函数   实例   属性   对象   参数   代码   方法

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top