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

Posted 王鸿云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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关键字调用本类重载构造器的主要内容,如果未能解决你的问题,请参考以下文章

JAVA SE基础篇21.构造方法以及this关键字

java中this关键字的基本使用

JAVA中this关键字的用法

Java基础(basis)-----关键字this和super的作用

java-this关键字

随笔14 java中的关键字