在構造器中可以調用本類的其他重載構造器,不能使用構造器名稱來調用另一個構造器,而是應該使用Java特定的this(….)來調用。 this(….)方法必須出現在構造器中的第一行,用來調用其他重載構造器。調用時參數必須嚴格匹配。 這種調用方式的優點在於一個構造器可以不必重覆編寫其他構造器中已有的代碼, ...
在構造器中可以調用本類的其他重載構造器,不能使用構造器名稱來調用另一個構造器,而是應該使用Java特定的this(….)來調用。
this(….)方法必須出現在構造器中的第一行,用來調用其他重載構造器。調用時參數必須嚴格匹配。
這種調用方式的優點在於一個構造器可以不必重覆編寫其他構造器中已有的代碼,而是通過調用其他構造函數以實現復用,從而提供良好和類代碼結構。
public class Teacher {
private String name;
private
String gender;
private int age;
public Teacher(String name){
this(name,"男");
System.out.println("第一行構造器");
}
public Teacher(String name,String gender ){
this(name,gender,45);
System.out.println("第二行構造器");
}
public Teacher(String name,String gender ,int age){
this.name = name;
this.gender = gender;
this.age = age;
System.out.println("這是第三個構造函數");
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender(){
return gender;
}
public void setAge( int age) {
if (age > 100) {
return;
}
this.age = age;
}
public int getAge(){
return age;
}
public void lecture() {
}
public void doExec() {
}
public String say() {
String str = "我是" + name + ",性別 " +gender + ",年齡" +age;
return str;
}
}
在TestConstructor 類中調用
public class TestConstructor {
public static void main(String[] args) {
Teacher t = new Teacher("張三");
System.out.println(t.say());
Teacher t1 = new Teacher("李四", "女");
System.out.println(t1.say());
Teacher t2 = new Teacher("王五", "男", 33);
System.out.println(t2.say());
}
}
輸出結果
這是第三個構造函數
第二行構造器
第一行構造器
我是張三,性別 男,年齡45
這是第三個構造函數
第二行構造器
我是李四,性別 女,年齡45
這是第三個構造函數
我是王五,性別 男,年齡33
文章來源:http://blog.csdn.net/baidu_30360575/article/details/50548695