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

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值