Java中的Clone机制(浅层复制)

浅层复制代码:

 1 import java.util.*;
 2 
 3 class Int{
 4     private int i;
 5     public Int(int ii){i = ii;}
 6     public void increment(){i++;}
 7     public String toString(){
 8         return Integer.toString(i);
 9     }
10 }
11 
12 public class Cloning{
13     public static void main(String[] args){
14         Vector v = new Vector();
15         for(int i = 0; i < 10; i++)
16             v.addElement(new Int(i));
17         System.out.println("v: "+v);
18         Vector v2 = (Vector)v.clone();
19         for(Enumeration e = v2.elements();e.hasMoreElements();)
20             ((Int)e.nextElement()).increment();
21         System.out.println("v: "+v);
22     }
23 }

输出:

v: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
v: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

分析:

Object类提供的Clone机制只对对象里各实例变量进行“简单复制”,如果实例变量的类型是引用类型,Clone机制也只是简单地复制这个引用变量。

posted @ 2016-04-21 22:26  hu983  阅读(248)  评论(0编辑  收藏  举报