日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java的clone()用法实例解析

發布時間:2025/4/5 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的clone()用法实例解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.背景

? ? ? ? ?用java寫程序的時候很苦惱的一件事就是,如果將一個對象a賦給另一個對象b,那么你改變a的變量值得時候,b的值也對應的變化。如果我們只想單純的獲取那個時刻的a的狀況給b的話,就要用到clone方法了。

比如說如下代碼:

public class Main {public static void main(String[] args) {// TODO Auto-generated method stubNode n=new Node();Node n1=n;n.a=5;System.out.print(""+n1.a);}} public class Node {int a=1;}
輸出結果是5,

下面就利用clone實現如上情況輸出結果是1.


2.代碼

克隆的實現需要一下幾步:

在派生類中覆蓋基類的clone()方法,并聲明為public。

在派生類的clone()方法中,調用super.clone()。

在派生類中實現Cloneable接口。Cloneable接口沒有任何抽象的方法,這樣的成為標識接口。實現這個接口,只是為了告訴編譯器這個對象可以被克隆了。

首先我們在派生類中覆蓋了Object類的Clone()方法,并聲明為public的。然后我們調用了super.clone()方法,這里會拋出一個異常(對于這個異常大家可以自己查看java的幫助文檔),所以必須用try……catch……語句捕獲,然后返回此對象。這里需要說明一下,Clone()方法返回的是Object類型的,所以需要強制類型轉換

public class Main {public static void main(String[] args) {// TODO Auto-generated method stubNode n=new Node();Node n1=(Node)n.clone();n.a=5;System.out.print(""+n1.a);}} public class Node implements Cloneable{int a=1;public Object clone(){Node n=null;try{n=(Node)super.clone();}catch(Exception e ){e.printStackTrace();}return n;} }
輸出結果是1;

ps:補充一道題

15. 不通過構造函數也能創建對象嗎()

A 是 ? ? B 否

答案:A

解析:Java創建對象的幾種方式(重要):

(1) 用new語句創建對象,這是最常見的創建對象的方法。
(2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
(3) 調用對象的clone()方法。
(4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。

(1)和(2)都會明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,所以不會調用構造函數 ;(4)是從文件中還原類的對象,也不會調用構造函數。



引用:【1】http://blog.csdn.net/mengxiangyue/article/details/6818611 ? ? ? ? ? ?【2】http://blog.csdn.net/lanxuezaipiao/article/details/16753743

/********************************

* 本文來自博客 ?“李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/

總結

以上是生活随笔為你收集整理的Java的clone()用法实例解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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