java淺克隆

Java提供了一個protected修飾的clone()方法,該方法用於幫助其他對象實現自我克隆,就是得到一個當前對象的副本,而且二者之間完全隔離。

克隆步驟如下:

1.實現Cloneable接口,這是一個標誌性的接口,實現該接口的對象可以實現自我克隆,接口裏沒有定義任何方法。

2.通過super.clone()實現clone()方法,調用Object實現的clone()方法來得到該對象的副本,並返回該副本。

以下程序示範自我克隆:

public class Address {
	String detail;
	public Address(String detail)
	{
		this.detail=detail;
	}
}
//實現Cloneable接口
public class User implements Cloneable {
	int age;
	Address address;
	public User(int age)
	{
		this.age=age;
		address=new Address("以色列");
	}
	public User clone()throws CloneNotSupportedException
	{
		return (User)super.clone();//通過super.clone()實現clone()方法
	}
}
public class CloneTest {
	public static void main(String[] args) throws CloneNotSupportedException{
		User u1=new User(29);
		User u2=u1.clone();//克隆得到u1的副本
		System.out.println(u1==u2);//false
		System.out.println(u1.address==u2.address);//true
	}
}
這只是一種淺克隆,只克隆對象的所有Field值,不會對引用類型的Field進行克隆。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章