如何给类一个克隆方法?克隆方法返回什么?

时间:2013-09-18 19:27:01

标签: java function methods clone

此类必须具有clone()方法,以便可以创建它的副本。我试过把一个放入,但它错过了回报?你究竟在克隆方法中返回了什么?

这是我尝试提供clone()方法的课程:

package planets;

public class Planet extends shape3D.Sphere {
    String myPrimaryGas;    
    public void setPrimaryGas(String primaryGas){
        myPrimaryGas = primaryGas;
    }
    public String getPrimaryGas(){
        return myPrimaryGas;
    }
}

1 个答案:

答案 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()”的唯一原因是因为字符串(几乎)是原始类型