日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JAVA之对象的克隆

發布時間:2024/1/1 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA之对象的克隆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA之對象的克隆

1.為什么要克隆?
①方便,克隆的對象可能包含一些已經修改過的屬性,而new出來的對象的屬性都還是初始化時候的值,所以當需要一個新的對象來保存當前對象的“狀態”使用clone方式很方便;
②速度快,clone方法最終將調用JVM中的原生方法完成復制也就是調用底層的c++代碼,所以一般使用clone方法復制對象要比新建一個對象然后逐一進行元素復制效率要高。

public class text {public static void main(String[] args) {Cat cat =new Cat("x",5);try {Cat newcat=(Cat) cat.clone();//實現cloneSystem.out.println(cat.toString());//輸出原來的System.out.println(newcat);//輸出克隆出來的}catch (CloneNotSupportedException e) {//要捕抓異常并拋出e.printStackTrace();}} }

2.進行克隆的條件
對象需要具備克隆功能:
(1)實現Cloneable接口,(標記接口)
(2)重寫Object類中的clone方法
3.如何實現clone
① 實現Cloneable接口并重寫Object類中的clone()方法;
② 實現Serializable接口,通過對象的序列化和反序列化實現克隆,可以實現真正的深度克隆。對象序列化后寫入流中,再從流中讀取,生成新的對象,新對象和原對象之間也是完全互不影響的。

protected Object clone() throws CloneNotSupportedException {//重寫clone方法return super.clone();}

4.注意
1, clone()不會調用構造方法;new會調用構造方法。
2, new對象時根據類型確定分配內存空間的大小, clone是根據原對象分配內存
3.如果為一個不實現cloneable的類調用clone的話,那么就會拋出一個CloneNotSupportedException異常。相對于實現cloneable接口的類來說,如果為使用默認方法Object.clone的類的實例調用clone的話,就必須采取以下動作之一:
1.在clone的調用周圍包裝一個try代碼塊并捕捉到CloneNotSupportedException異常。
2.將異常CloneNotSupportedException添加到調用clone的方法的throws子句中,拋出這個異常。
以下為

try {Cat newcat=(Cat) cat.clone();System.out.println(cat.toString());System.out.println(newcat);}catch (CloneNotSupportedException e) {e.printStackTrace();

總結

以上是生活随笔為你收集整理的JAVA之对象的克隆的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。