在Java中,当给一个类创建了多个构造方法时,有时想在一个构造方法中调用另一个构造方法以减少代码量。这时可以使用this关键字来实现。
通常,当使用this关键字时,它意味着“这个对象”或者“当前对象”,并且它自身产生对当前对象的引用。在一个构造方法中,当给传递给它一个参数列表时,它就有了不同的意义。它将直接的调用能够匹配这个参数列表的构造方法。因此,我们可以直接的调用其它构造方法:
//举例:用this(参数列表)的形式,自动调用对应的构造方法。不可以直接使用类名进行调用。
public class Person {
private String name;
private int age;
//构造方法一
public Person() {
this(null);
}
//构造方法二
public Person(String n) {
this(n, 12);//调用第三个
}
//构造方法三
public Person(String n, int a) {
this.name = n;
this.age = a;
}
}
看例子,第一个构造方法调用第二个的,第二个的再调用第三个。第三个是最终的实现。这样就能减少代码量了。