欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

java 克隆clone學(xué)習(xí)

系統(tǒng) 1848 0

文章參考 :http://www.java3z.com/cwbwebhome/article/article8/81145.html?id=2600

?

Java Object類(lèi) 提供了一個(gè) protected 修飾的clone()方法,該方法用于幫助其他對(duì)象來(lái)實(shí)現(xiàn)“自我克隆”,所謂“自我克隆”就是得到一個(gè)當(dāng)前對(duì)象的副本,而且兩者之間完全隔離, 該方法只能被子類(lèi)重寫(xiě)或調(diào)用

?

自定義類(lèi)實(shí)現(xiàn)“克隆”的步驟:

1、自定義類(lèi)實(shí)現(xiàn)Cloneable接口;(這是個(gè) 標(biāo)記性接口 ,實(shí)現(xiàn)該接口對(duì)象可以實(shí)現(xiàn)“自我克隆”,接口里沒(méi)有定義任何方法,否則不能執(zhí)行clone方法)

2、自定義類(lèi)實(shí)現(xiàn)自己的clone()方法

3、實(shí)現(xiàn)clone()方法時(shí)通過(guò)super.clone();調(diào)用Object實(shí)現(xiàn)的clone()方法來(lái)得到該對(duì)象的副本,并返回該副本。

?

備注: 標(biāo)記性接口是沒(méi)有任何方法和屬性的接口。它僅僅表明他的類(lèi)屬于一個(gè)特定的類(lèi)型,供其他代碼來(lái)測(cè)試允許做一些事情。使用標(biāo)記性接口的唯一目的是使得可以用instanceof進(jìn)行類(lèi)型查詢(xún) ,例如:

if(obj instanceof Cloneable){......}

一些容器例如EJB容器,servlet容器或運(yùn)行環(huán)境依賴(lài)標(biāo)記接口識(shí)別類(lèi)是否需要進(jìn)行某種處理,例如serialiable接口標(biāo)記類(lèi)需要進(jìn)行序列化操作。

?

?

      package hb.com.clone;

class Address{
	String detail;
	public Address(String detail){
		this.detail = detail;
	}
	
	public String getDetail() {
		return detail;
	}

	public void setDetail(String detail) {
		this.detail = detail;
	}

	public String print(){
		System.out.println(this.detail);
		return this.detail;
	}
	
}

    

?

      package hb.com.clone;

public class User implements Cloneable{
	 
	public int age;
	public Address address;
	public User(int age){
		this.age = age;
		this.address = new Address("地名");
	}
	 
	public User clone(){
		try {
			return (User)super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		return null;
	}
}
    

?

      public class CloneTest {
 
	public static void main(String[] args) {
	User u1 = new User(29);  
        //u1克隆之后,會(huì)單獨(dú)開(kāi)辟一塊內(nèi)存空間,u2指向的地址與u1不一致
//      x.clone() != x 
//		x.clone().getClass() == x.getClass() 
//		x.clone().equals(x) 
        User u2 = u1.clone();  
        System.out.println(u1==u2);  //false
        
//		primitive的確做到了相等且隔離。 
//		引用類(lèi)型僅僅是復(fù)制了一下引用
        System.out.println(u1.address ==u2.address);  //true
           
        //值相等,實(shí)際上內(nèi)存不是指向同一個(gè)位置
        System.out.println(u1.age == u2.age); 
        
        System.out.println(u1.address.print());
        u1.address.setDetail("地名1");
        System.out.println(u1.address.print());
        System.out.println(u2.address.print());
	}
 
}
    

? java 克隆clone學(xué)習(xí)

?

Object類(lèi)的clone()方法雖然簡(jiǎn)單、易用,但它只是一種“ 潛克隆 ”—— 它只克隆該對(duì)象的所有Field值,不會(huì)對(duì)引用類(lèi)型的Field值所引用的對(duì)象克隆 。如果需要“ 深克隆 ”,則需要開(kāi)發(fā)者自己進(jìn)行“遞歸”克隆,保證所有引用類(lèi)型的Field值所引用的對(duì)象都被復(fù)制了。

java 克隆clone學(xué)習(xí)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日韩黄色影视 | 精品一区二区三区四区五区六区 | 天天插天天操 | 成人黄色在线视频 | 欧美黄色一级片视频 | 国产福利不卡视频在免费播放 | 欧美伦理大片 | 一级毛片在线观看视频 | 亚洲视频在线观看免费视频 | 欧美综合激情网 | 亚洲成a人v在线观看 | 国产成人啪精品视频免费网站软件 | 九九热在线免费观看 | 精品九九 | 国产欧美日韩 | 久久com | 四虎av| 在线视频国产一区 | 91高清网站 | 欧美午夜不卡 | 久久受www免费人成看片 | 精品国精品国产自在久国产应用 | 亚洲婷婷在线 | 91亚洲精品在线观看 | 成人免费毛片aaaaaa片 | 欧美日韩精品综合 | 亚洲一区久久久 | 国产99久久久国产精品 | 国产精品久久久久无码人妻 | 久久av网| 奇米影视亚洲精品一区 | 国产成人综合95精品视频免费 | 亚洲欧美日韩在线一区 | 亚洲精品日韩在线 | 欧美高清另类自拍视频在线看 | 欧美日韩一区二区视频在线观看 | 久久日本精品99久久久久 | 来吧亚洲综合网 | 日韩视频一区二区三区 | 在线观看高清免费 | 玛米亚奥特曼 |