此类必须具有clone()
方法,以便可以创建它的副本。我试过把一个放入,但它错过了回报?你究竟在克隆方法中返回了什么?
这是我尝试提供clone()
方法的课程:
package planets;
public class Planet extends shape3D.Sphere {
String myPrimaryGas;
public void setPrimaryGas(String primaryGas){
myPrimaryGas = primaryGas;
}
public String getPrimaryGas(){
return myPrimaryGas;
}
}
答案 0 :(得分:1)
你的克隆所做的(在java中)本质上是创建第二个对象,类型为Planet(在本例中),并复制所有值,以便你有两个相同的对象,新对象和'this'。 / p>
所以你的克隆就像是
public Planet clone (){
Planet p = new Planet (myPrimaryGas);
return p;
}
或者在您的情况下,似乎您没有定义构造函数,所以这个:
public Planet clone (){
Planet p = new Planet ();
p.setPrimaryGas(myPrimaryGas);
return p;
}
请记住,您需要“深层复制”...这意味着您需要为此内部的所有对象调用克隆。我可以使用“myPrimaryGas”而不是“myPrimaryGas.clone()”的唯一原因是因为字符串(几乎)是原始类型