什么';请问我的Java代码有什么问题?
为什么我的代码在最后一次输出时返回空值? 我想它应该归还这个:车库里的自动梅赛德斯C:顶级服务(x2) 实际上,完整输出应为: 车库里的福特S-MAX汽车:迅捷 汽车福特福克斯从车库:快速 车库里的奔驰C车:顶级服务 车库里的奔驰C车:顶级服务 我知道问题出在我的构造器的某个地方,它构造了我的对象的副本。 多谢各位什么';请问我的Java代码有什么问题?,java,copy-constructor,Java,Copy Constructor,为什么我的代码在最后一次输出时返回空值? 我想它应该归还这个:车库里的自动梅赛德斯C:顶级服务(x2) 实际上,完整输出应为: 车库里的福特S-MAX汽车:迅捷 汽车福特福克斯从车库:快速 车库里的奔驰C车:顶级服务 车库里的奔驰C车:顶级服务 我知道问题出在我的构造器的某个地方,它构造了我的对象的副本。 多谢各位 public class Garage { //final String naam; String naam; public Garage (String
public class Garage {
//final String naam;
String naam;
public Garage (String n){
this.naam = n;
}
public String getName(){
return naam;
}
public void setName(String sn){
this.naam = sn;
}
public String toString(){
return ""+getName();
}
}
public class Auto {
//static final String brandName;
String brandName;
Garage garage;
public Auto(String mn){
this.brandName = mn;
}
public Auto(Auto a){
this.hashCode();
}
public Auto(String mn, Garage g){
//this(mn);
this.brandName = mn;
this.garage = g;
}
public String getBranName(){
return brandName;
}
public Garage getGarage(){
return garage;
}
public void setGarage(Garage g){
this.garage = g;
}
public String toString(){
return "Auto "+getBranName()+" from Garage: "+getGarage();
}
}
public class GarageTester {
/**
* @param args
*/
public static void main(String[] args) {
Auto auto = new Auto("FORD S-MAX");
Garage garage = new Garage("SPEEDY");
auto.setGarage(garage);
System.out.println(auto);
auto = new Auto("FORD FOCUS",garage);
System.out.println(auto);
auto = new Auto("MERCEDES C", new Garage("TOP SERVICE"));
System.out.println(auto);
Auto kopie = new Auto(auto);
System.out.println(kopie);
}
}
您还没有在
Auto
类中正确实现您的复制收缩器
public Auto(Auto a){
this.hashCode();
}
现在,它只调用hashCode()
方法,但不初始化类属性:
请更正如下:
public Auto(Auto a){
this.brandName = a.brandName;
this.garage = a.garage;
}
一旦完成,则
Auto kopie=新自动(Auto)代码>语句将生成新的类实例kopie
,其中包含从auto
实例复制的属性。对不起,我的问题质量太高了。如果您可以将标题编辑得更具描述性,那就太好了。:)我正在设法编辑我的标题。同意——你的标题没有告诉我们你遇到的问题,这些信息将帮助你获得更好的帮助和答案。关于这一点,请阅读Jon Skeet的博客。你说得很对,“问题出在我的构建者的某个地方,构建了我的对象的副本”。你还没有实现,谢谢你帮我。下一次我会更加小心我的头衔。cheers@JBNizet已从构造函数中删除空检查。