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

user485739 2012-03-18 05:17:09
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;
}
...全文
175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
user485739 2012-03-21
  • 打赏
  • 举报
回复
clear
大家回答得太精彩了. 分只能平均给了. 谢谢!
Acesidonu 2012-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jake512 的回复:]

Java code

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

这样写就好了,直接调用已有的构造方法。
[/Quote]
++

Car(String b, String hp, String c){
new Car(b,hp);// 这是一个垃圾对象,没有任何作用。String b, String hp,没有被初始化给成员变量

color=c;
}
GIS的粉刷匠 2012-03-18
  • 打赏
  • 举报
回复
一样的,只不过多分配了一块内存而已,
五哥 2012-03-18
  • 打赏
  • 举报
回复
不相同 ,

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;
}
jake512 2012-03-18
  • 打赏
  • 举报
回复

public Car(String b, String hp, String c){
this(b,bp) ;
color=c;
}
这样写就好了,直接调用已有的构造方法。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧