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);
}
}