• 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

  • 相关阅读:
    vue-cli常用配置
    浏览器进程线程时间循环、与vue netTick的实现原理
    WebSocket的兼容性
    hiper、sitespeed性能工具
    excel操作
    performance面板使用,以及解决动画卡顿
    axios设置了responseType: 'json‘’,ie问题
    docker服务重启
    Spring Boot AOP之对请求的参数入参与返回结果进行拦截处理
    python中几种单例模式的实现
  • 原文地址:https://www.cnblogs.com/wanghongyun/p/6132083.html
Copyright © 2020-2023  润新知