📜  Java this关键字(1)

📅  最后修改于: 2023-12-03 15:15:58.033000             🧑  作者: Mango

Java this关键字

在Java中,this关键字是一个引用,用于表示当前对象的引用。它可以在类的内部被使用,例如在方法中,构造函数中等等。

用途
  • 解决变量名冲突
  • 调用其他构造器
  • 作为方法返回值
解决变量名冲突

在Java类中,如果一个成员变量和参数或方法变量名称相同,则会发生变量名冲突。这时候使用this关键字可以解决变量名冲突问题。

例如一个Person类如下:

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;
    }

    // getters and setters
}

在上述代码中,私有成员变量nameage和方法参数名相同。使用this可以将方法参数与成员变量区分开来:

public void setName(String name) {
    this.name = name;
}

public void setAge(int age) {
    this.age = age;
}
调用其他构造器

在一个类的构造器中,可以使用this来调用其他构造器。这个构造器必须与当前类的构造器有不同的参数列表。

例如,在下面的代码中,Person类中给定参数和不给参数的构造函数都使用了this来调用一个带有参数列表的构造函数:

public class Person {

    private String name;
    private int age;

    public Person() {
        this("John Doe", 30);
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getters and setters
}
作为方法返回值

在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;
    }

    // getters
}

然后我们可以像这样使用链式编程:

Person person = new Person();
person.setName("John").setAge(30);
结论

this关键字是Java中一个非常重要的关键字。它可以解决变量名冲突的问题,调用其他构造器,并且作为方法的返回值,使得Java代码更加优雅和易于阅读。