本人认为第一种方法就是一种引用,原实例变量和副本引用的均是一个内存空间,着就意味着我们改变其中一个实例变量,另外一个也跟着变化。
用CLONE()方法,CLONE后的对象和原来的不是一存储空间,这样操作其中一个对另外一个没有影响。

解决方案 »

  1.   

    楼上正解。第一种只是两个对象的引用值相同,真正的对象只有一个。如果想拥有一个和原来对象的值(数据成员)相同的对象(共两个),就要用到Clone方法。
      

  2.   

    Vector v2 = (Vector)v.clone();
    不知道vector是深度clone还是浅度clone...但两种看起来好像没有什么区别,因为当改变v的时候,v2也被改变,好像是它们都指向同一块内存。是吗?
    按你这么说,默认的是浅度clone.你可以自己实现一下深度clone.这样v 和v2就互不干扰了 ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  3.   

    同意LingFengNB的看法注:需要时只需对非基本类型的对象变量进行克隆所谓深浅克隆是指:
        如果类中含有类型为非基本型(基本型如: int,float)的属性时,如Employee类中可以含有Data型的雇佣日期属性,这时要想克隆一个Employee类的对象,就要考虑是否要对Data型的属性进行克隆,若实现了对所有对象类型的属性的克隆则是深克隆,否则浅克隆.