构造器的重载
构造器的重载和方法重载相似。只不过构造器要求必须和类名相同,所以当重载构造器的时候要求其参数列表必须不相同。
构造器中this()的使用
- 使用条件
public Person(){}//默认的构造函数
public Person(String name){ // 带一个参数的构造函数
this.name=name;
}
public Person(String name,int age){// 带两个参数的
this.name=name;
this.age=age;
}
public Person(String name,int age,String address){
this.name=name;
this.age=age;
this.address=address;
}
上面是一个简单的构造器的重载,我们发现了一个规律就是参数列表的特点。没错,只有这种情况才适合使用this()调用其他的构造器,如下
public Person(){}//默认的构造函数
public Person(String name){ // 带一个参数的构造函数
this.name=name;
}
public Person(String name,int age){// 带两个参数的
this(name);// 使用this();
this.age=age;
}
public Person(String name,int age,String address){
this(name,age);// 使用this();
this.address=address;
}
使用this调用另一个重载的构造器的时候,当创建对象时候选择相对应的构造器,系统会先根据this()中的参数列表调用与之相对应的构造器,然后在执行余下的构造器的方法体。使用this();调用构造器的要求如下
- 只能在构造器中使用
- 必须作为构造器执行体的第一行使用