构造函数当然是可以递归调用的,举例说明下?

class ITB{
     int age;      // 年龄
     int hight;    // 身体高度
 
     public ITB() {
         print();
         this.age=2;   //这里初始化 age 的值 ,但递归返回的时候,这个值会被覆写
     }
     
     public ITB(int age) {
         this();      // 调用自己的第一个构造函数,下面的两个语句数不执行的
         this.age = age;
         print();
     }
 
     public ITB(int age, int hight) {
         this(age);   // 调用自己第二个构造函数  ,在此句执行完前,下面的两个语句暂时不执行的
         this.hight = hight;
         print();
     }
 
     public void print() {  //打印函数
         System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");
     }
     public static void main(String[] args) {
         new ITB(3,3);
     }
 }
 //output
 //I'am a 0岁 0尺高 tiger!
 //I'am a 3岁 0尺高 tiger!
 //I'am a 3岁 3尺高 tiger!  

  

posted @ 2014-04-24 23:07  ITB  阅读(582)  评论(0编辑  收藏  举报