對象克隆是一種創建對象的精確副本的方法。 Object
類的clone()
方法用於克隆對象。java.lang.Cloneable
介面必須由我們要創建其對象克隆的類實現。如果我們不實現Cloneable
介面,clone()
方法生成CloneNotSupportedException
。
clone()
方法在Object
類中定義。 clone()
方法的語法如下:
protected Object clone() throws CloneNotSupportedException
為什麼要使用clone()方法?
clone()
方法保存用於創建對象的精確副本的額外處理任務。 如果我們使用new
關鍵字執行它,它將需要執行大量的處理,這就是為什麼我們使用對象克隆。
對象克隆的優點
- 少處理任務。
clone()方法示例(對象克隆)
讓我們來看看對象克隆的簡單例子
class Student18 implements Cloneable {
int rollno;
String name;
Student18(int rollno, String name) {
this.rollno = rollno;
this.name = name;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public static void main(String args[]) {
try {
Student18 s1 = new Student18(101, "amit");
Student18 s2 = (Student18) s1.clone();
System.out.println(s1.rollno + " " + s1.name);
System.out.println(s2.rollno + " " + s2.name);
} catch (CloneNotSupportedException c) {
}
}
}
執行上面代碼,得到如下結果 -
101 amit
101 amit
從上面的例子可以看出,兩個引用變數都有相同的值。 因此,clone()
將對象的值複製到另一個對象。 因此,在實際應用中我們不需要編寫顯式代碼將對象的值複製到另一個對象。
如果通過new
關鍵字創建另一個對象並將另一個對象的值賦給這個對象,則需要對該對象進行大量處理。 所以為了節省額外的處理任務,我們使用clone()
方法。
上一篇:
Java Object類
下一篇:
Java數組