Java 克隆某些属性为对象的对象
我有一个特别的练习,这里是: 如果X对象具有包含对象的属性,则X对象的克隆将在其属性中包含与X对象包含的实例相同的实例 修改CloneMe类,以便如果克隆了CloneMe类的对象,则对象的a和b属性(也是对象)也会被克隆,但属性c中包含的对象不会被克隆 换句话说,克隆类CloneMe的对象后,应该有两个类CloneMe的实例,其中包含A和B的两个不同实例,但引用的是C的相同实例 这是我必须完成的代码:Java 克隆某些属性为对象的对象,java,clone,cloneable,Java,Clone,Cloneable,我有一个特别的练习,这里是: 如果X对象具有包含对象的属性,则X对象的克隆将在其属性中包含与X对象包含的实例相同的实例 修改CloneMe类,以便如果克隆了CloneMe类的对象,则对象的a和b属性(也是对象)也会被克隆,但属性c中包含的对象不会被克隆 换句话说,克隆类CloneMe的对象后,应该有两个类CloneMe的实例,其中包含A和B的两个不同实例,但引用的是C的相同实例 这是我必须完成的代码: class A implements Cloneable { // clone functio
class A implements Cloneable {
// clone functionality hidden
}
class B implements Cloneable {
// clone functionality hidden
}
class C implements Cloneable {
// clone functionality hidden
}
class CloneMe implements Cloneable {
private A a;
private B b;
private C c;
public CloneMe () {
this.a = new A ();
this.b = new B ();
this.c = new C ();
}
public A getA () {return this.a; }
public B getB () {return this.b; }
public C getC () {return this.c; }
/ * ---------- DO NOT MODIFY THE CODE ABOVE THIS LINE, IT WILL BE RESET ON RUN ---------- * /
/ **** Enter your code here **** /
/ * ---------- DO NOT CHANGE THE CODE BELOW THIS LINE, IT WILL BE RESET WHEN RUNNING ---------- * /
}
下面是我完成的代码:
class CloneMe implements Cloneable {
private A a;
private B b;
private C c;
public CloneMe( ) {
this.a = new A();
this.b = new B();
this.c = new C();
}
public A getA() { return this.a; }
public B getB() { return this.b; }
public C getC() { return this.c; }
/*----------NE MODIFIEZ PAS LE CODE AU DESSUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
public Clone( ) {
private A a=null;
private B b=null;
private C c=null;
}
/*----------NE MODIFIEZ PAS LE CODE EN DESSOUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
}
对不起,我还没有找到解决办法,问题是我不太理解克隆的概念,
你有什么线索给我吗?你必须在
CloneMe
中实现clone()
方法。此方法必须初始化a
、b
和c
调用a
、b
和c
类的clone()
方法。我通过初始化a,b和c更新了代码,但我不知道如何在我的clone()方法中调用类a,b和c的clone()方法,您知道如何在我的方法clone()中调用这些clone()方法吗?这里有一个示例来说明如何执行此操作: