Java 克隆某些属性为对象的对象

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

我有一个特别的练习,这里是:

如果X对象具有包含对象的属性,则X对象的克隆将在其属性中包含与X对象包含的实例相同的实例

修改CloneMe类,以便如果克隆了CloneMe类的对象,则对象的ab属性(也是对象)也会被克隆,但属性c中包含的对象不会被克隆

换句话说,克隆类CloneMe的对象后,应该有两个类CloneMe的实例,其中包含AB的两个不同实例,但引用的是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----------*/
    }
对不起,我还没有找到解决办法,问题是我不太理解克隆的概念,
你有什么线索给我吗?

你必须在
CloneMe
中实现
clone()
方法。此方法必须初始化
a
b
c
调用
a
b
c
类的
clone()
方法。

我通过初始化a,b和c更新了代码,但我不知道如何在我的clone()方法中调用类a,b和c的clone()方法,您知道如何在我的方法clone()中调用这些clone()方法吗?这里有一个示例来说明如何执行此操作: