📅  最后修改于: 2023-12-03 15:08:03.573000             🧑  作者: Mango
在 Java 中,构造函数是一种特殊的方法,用于初始化对象的实例变量。在构造函数中调用 this 关键字可以让程序员很方便地重载构造函数。
在 Java 中,this 关键字代表当前对象的引用。当你在构造函数中使用 this,它将会调用当前类的另一个构造函数。这个构造函数需要和当前构造函数在参数的个数和类型上一致,然后将当前类的实例变量初始化。下面是个示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name) {
this(name, 0);
}
}
上述代码中,我们定义了一个 Person 类,它有两个构造函数。第一个构造函数需要两个参数,用于初始化 Person 对象的 name 和 age 属性。第二个构造函数只需要一个参数 name,在构造函数中调用了 this(name, 0)。这个语句相当于调用了第一个构造函数,并将 age 设置为 0。
有时,我们希望在一个构造函数中调用当前类的另一个构造函数,并传递一些参数。这可以通过使用 this 关键字和参数列表实现。这时候调用的构造函数必须在参数列表上有对应的签名。下面是一个具体的例子:
public class Employee {
private String name;
private int age;
private double salary;
public Employee(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
// 构造函数重载
public Employee(String name, int age) {
this(name, age, 0.0);
}
}
在上面的示例中,我们用了两个不同的构造函数来初始化对象。第一个构造函数需要三个参数:name,age 和 salary。第二个构造函数只需要两个参数:name 和 age。这时我们传递给第二个构造函数的 salary 是 0.0。
在 Java 中,使用 this 关键字可以很方便地重载构造函数,并且在构造函数之间传递参数。这可以大大减少代码量,同时增加了程序的可读性。