首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于克隆的一些疑问,求大大指教!该如何解决

2012-02-13 
关于克隆的一些疑问,求大大指教!Java codepackage c12import java.util.* class Int {private int ipub

关于克隆的一些疑问,求大大指教!

Java code
package c12;import java.util.*; class Int {    private int i;    public Int(int ii) { i = ii; }    public void increment() { i++; }    public String toString() {        return Integer.toString(i);    } } public class Cloning {    public static void main(String[] args) {        Vector v = new Vector();        for(int i = 0; i < 10; i++ )           v.addElement(new Int(i));        System.out.println("v: " + v);        Vector v2 = (Vector)v.clone();       //Increment all v2's elements:       for(Enumeration e = v2.elements();             e.hasMoreElements(); )           ((Int)e.nextElement()).increment();         //See if it changed v's elements:        System.out.println("v2:"+v2);       System.out.println("v:"+v);      if (v2!=v)          System.out.println("This is different");      // System.out.println("v: " + v);    } }

输出结果是这样的:
v: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
v2:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
v:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
This is different
明明是相同的,而且我看过内存的地址也是相同的,为什么判断出来就是不相同的呢?

[解决办法]
探讨

那为什么V2改变了,v也会跟着改变呢?

热点排行