首页 > 代码库 > java使用this关键字调用本类重载构造器

java使用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

java使用this关键字调用本类重载构造器