JAVA中clone浅复制

来源:互联网 发布:淘宝打折软件怎么设置 编辑:程序博客网 时间:2024/05/01 22:19
package test;public class Snake implements Cloneable{private Snake next;private char c;Snake(int i, char x){c = x;if(--i>0){next = new Snake(i, (char)(x+1));}}void increment(){c++;if(next != null){next.increment();}}public String toString(){String s = ":"+c;if(next != null){s+=next.toString();}return s;}/** * 浅赋值,对象属性next只复制了引用,而值属性c直接复制了 */public Object clone(){Object o = null;try{o = super.clone();}catch(Exception e){}return o;}public static void main(String[] args){Snake s = new Snake(5,'a');System.out.println("s = "+s);Snake s2 = (Snake)s.clone();System.out.println("s2 = "+s2);s.increment();System.out.println("s = "+s);System.out.println("s2 = "+s2);//s2 = :a:c:d:e:f}}