首页 > 代码库 > 【Java基础】构造方法调用构造方法
【Java基础】构造方法调用构造方法
从一个程序开始:
1 class dog 2 { 3 private String name; 4 private String color; 5 private int age; 6 7 dog(String name) 8 //仅给name赋值 9 {10 this.name=name;11 }12 dog(String name,String color)13 //仅给name,color赋值14 {15 this.name=name;//但之前有过类似代码16 this.color=color;17 }18 dog(String name,String color,int age)19 //仅给name,color,age赋值20 {21 this.name=name;22 this.color=color;//之前有过类似代码23 this.age=age;24 }25 /*以上代码缺点,代码重复,26 而且如果修改最初定义的参数(如name)时,27 需要大量修改方法中的参数(3处修改),造成不便*/28 }29 30 class ConstructerDemo 31 {32 public static void main(String[] args) 33 {34 35 }36 }
此时我们可以使用构造方法来调用构造方法(形式为this(实参)),来解决上述问题,改进如下:
1 class dog 2 { 3 private String name; 4 private String color; 5 private int age; 6 7 dog(String name) 8 //仅给name赋值 9 {10 this.name=name;11 }12 dog(String name,String color)13 //仅给name,color赋值14 {15 //this.name=name;//但之前有过类似代码16 this(name);//改进后17 this.color=color;18 }19 dog(String name,String color,int age)20 //仅给name,color,age赋值21 {22 //this.name=name;23 //this.color=color;//之前有过类似代码24 this(name,color);//改进后25 this.age=age;26 }27 /*以上代码缺点,代码重复,28 而且如果修改最初定义的参数(如name)时,29 需要大量修改方法中的参数(3处修改),造成不便*/30 }31 32 class ConstructerDemo 33 {34 public static void main(String[] args) 35 {36 37 }38 }
我们要注意的是,对this构造器的调用必须是构造器中的第一个语句。
也就是两点要注意,一是this构造器必须放在构造器中。二是必须为构造器中的第一个语句。
【Java基础】构造方法调用构造方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。