日期:2014-05-20  浏览次数:20792 次

多个参数类似的构造函数如何相互引用和简写?
class Car{

  String brand;
  String horsepower;
  String color;

  Car(String b, String hp){
  brand=b;
  horsepower=hp;
  }

//第二个构造函数加入一个参数,如何简写??
  Car(String b, String hp, String c){
  brand=b;
  horsepower=hp;

  color=c;
  }

}



写成下面这个形式,程序不抱错,但是意义相同吗?

Car(String b, String hp, String c){
new Car(b,hp);

color=c;
}


------解决方案--------------------
Java code

public  Car(String b, String hp, String c){
    this(b,bp) ;
    color=c;
}

------解决方案--------------------
不相同 ,

Car(String b, String hp, String c){
new Car(b,hp);

color=c;
}
 
会多创建一个 Car对象 ,而且当前创建的对象的 b 和 hp没有赋值,还是默认值 

以下是一样的

public Car(String b, String hp, String c){

this(b, hp) ;
color=c;
}

public Car(String b, String hp, String c){
brand=b;
horsepower=hp;
color=c;
}
------解决方案--------------------
探讨

Java code

public Car(String b, String hp, String c){
this(b,bp) ;
color=c;
}

这样写就好了,直接调用已有的构造方法。