码迷,mamicode.com
首页 > 编程语言 > 详细

【Java基础】构造方法调用构造方法

时间:2014-10-30 18:36:44      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   使用   java   sp   

    从一个程序开始:

bubuko.com,布布扣
 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 }
View Code

    此时我们可以使用构造方法来调用构造方法(形式为this(实参)),来解决上述问题,改进如下:

bubuko.com,布布扣
 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 }
View Code

    我们要注意的是,对this构造器的调用必须是构造器中第一个语句

    也就是两点要注意,一是this构造器必须放在构造器中。二是必须为构造器中的第一个语句。

【Java基础】构造方法调用构造方法

标签:style   blog   http   color   os   ar   使用   java   sp   

原文地址:http://www.cnblogs.com/zhubingqi/p/4063096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!