Object的
clone
方法可以帮助我们克隆对象。现在需编写一个类Car
包含:1.属性:
private String name; private CarDriver driver; private int[] scores;
2.无参构造函数
public Car() { }
3.方法:
@Override public String toString() { return "Car [name=" + name + ", driver=" + driver + ", scores=" + Arrays.toString(scores) + "]"; }
setter/getter方法与
clone
方法。注意:clone
方法需实现对象的深度克隆。
CarDriver
为已经定义好的类,部分代码如下:class CarDriver { private String name; public CarDriver() {} //setter/getter //toString }
/* 请在这里填写答案,即Car类的完整代码 */
class Car implements Cloneable{
private String name;
private CarDriver driver;
private int[] scores;
public Car(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setScores(int [] scores){
this.scores = scores;
}
public int[] getScores(){
return scores;
}
public void setDriver(CarDriver driver){
this.driver = driver;
}
public CarDriver getDriver(){
return driver;
}
@Override
public String toString() {
return "Car [name=" + name + ", driver=" + driver + ", scores=" + Arrays.toString(scores) + "]";
}
public Car clone() throws CloneNotSupportedException{
Car car = new Car();
CarDriver cd = new CarDriver();
if(driver == null){
cd = null;
}else{
cd.setName(driver.getName());
}
car.setDriver(cd);
car.setName(name);
if(scores == null){
car.setScores(null);
}else{
int [] arr = Arrays.copyOf(scores, scores.length);
car.setScores(arr);
}
return car;
}
}