如何解决克隆对象,其中某些属性是对象
如果 X 对象具有包含对象的属性,则 X 对象的克隆将在其属性中包含与 X 包含的对象。
修改 CloneMe 类,以便如果克隆了 CloneMe 类的对象,则属性 a 和 b 也是对象的对象也被克隆,但属性 c 中包含的对象未被克隆。
换句话说,克隆 CloneMe 类的对象之后,应该有两个 CloneMe 类的实例,其中包含两个不同的 A 实例。和 B ,但引用同一实例的 C 。
这是我必须完成的代码:
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----------*/
}
对不起,我还没有找到解决方案,问题是我不太了解克隆的概念, 请问有什么线索给我吗?
解决方法
您必须在clone()
中实现CloneMe
方法。此方法必须初始化a
,b
和c
,以调用clone()
,A
和B
类的C
方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。