對象克隆技術

class Person implements Cloneable
函數

{this

private String name = null;spa

public Person (String name).net

{對象

this.name=name; 接口

}get

public void setName(String name)it

{io

this.name=name;class

}

public String getName()

{

return this.name;

}

public Object clone() throws CloneNotSupportedException

{

return super.clone();

}

public String toString()

{

return "姓名:"+this.getName();

}

}

//定義一個類實現Cloneable接口,公共一個帶參數的構造函數,定義一個私有變量name,並設置

//name的設置和獲取方法,覆寫了父類中clone方法及toString方法,clone 方法要拋出異常,

//throws CloneNotSupportdException

//建立兩個Person對象,第一個對象傳參,第二個對象克隆第一個對象,

//並給第二個對象賦值,

public class CloneDemo

{


/**

* @param args

* @throws CloneNotSupportedException 

*/

public static void main(String[] args) throws CloneNotSupportedException

{

Person p1 = new Person("wangjicai");

Person p2 = (Person)p1.clone();

p2.setName("lisi");//若是此行取消,則兩個對象的結果是相同的

System.out.println("原始對象:"+p1);

System.out.println("克隆後對象:"+p2);

}


}

相關文章
相關標籤/搜索