摘要:主要內(nèi)容清楚對象克隆的操作結(jié)構(gòu)鞏固接口的作用具體內(nèi)容對象克隆對象克隆指的就是對象的復(fù)制操作,在類里面提供有一個專門克隆的方法。此方法上拋出一個異常,如果要使用對象克隆的類沒有實現(xiàn)接口,那么就會拋出此異常。
主要內(nèi)容
清楚對象克隆的操作結(jié)構(gòu)
鞏固接口的作用
具體內(nèi)容
對象克隆
對象克隆指的就是對象的復(fù)制操作,在Object類里面提供有一個專門克隆的方法。
對象克隆:protected Object clone() throws CloneNotSupportedException。
此方法上拋出一個“CloneNotSupportedException”異常,如果要使用對象克隆的類沒有實現(xiàn)Cloneable接口,那么就會拋出此異常。但是Cloneable接口看不見方法,此為標(biāo)識接口,表示一種操作能力。
范例:實現(xiàn)克隆操作
public class Book implements Cloneable { // 此類的對象可以被克隆
private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } public void setTitle(String title) { this.title = title; } @Override public String toString() { reture "書名:" + this.title + ",價格:" + this.price + "。"; } // 由于此類需要對象克隆操作,所以才需要進行方法的覆寫 @Override public Object clone() throws CloneNotSupportedException { return super.clone(); // 調(diào)用父類的克隆方法 }
}
public class TestDemo {
public static void main(String args[]) throws Exception { Book bookA = new Book("Java開發(fā)", 79.8); Book bookB = bookA.clone(); bookB.setTitle("Android開發(fā)"); System.out.println(bookA); System.out.println(bookB); }
}
輸出結(jié)果
書名:Java開發(fā),價格:79.8。
書名:Android開發(fā),價格:79.8。
對象的克隆操作,理論價值大于實際價值,因為在實際的工作里面很少會用到對象克隆 的操作。重點在于標(biāo)識接口上,以后依然會見到?jīng)]有方法的接口,這樣的接口就好比通行證一樣,表示的是能力。
總結(jié)
標(biāo)識接口:沒有任何方法定義,只是一個空接口的聲明。
歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67658.html
Object作為超類 java.lang包中的Object類位于類層次結(jié)構(gòu)樹的頂部,每個類都是Object類的直接或間接的后代,你使用或編寫的每個類都繼承Object的實例方法,你不需要使用任何這些方法,但是,如果你選擇這樣做,你可能需要使用特定于你的類的代碼重寫它們,本節(jié)中討論的從Object繼承的方法是: protected Object clone() throws CloneNotSu...
摘要:定義給出的原型模式定義如下使用原型實例指定將要創(chuàng)建的對象類型,通過復(fù)制這個實例創(chuàng)建新的對象。具體原型類角色負責(zé)實現(xiàn)復(fù)制現(xiàn)有實例并生成新實例的方法。 Java面試通關(guān)手冊(Java學(xué)習(xí)指南,歡迎Star,會一直完善下去,歡迎建議和指導(dǎo)):https://github.com/Snailclimb/Java_Guide 系列文章回顧: 設(shè)計模式專欄深入理解單例模式深入理解工廠模式 深入理解...
摘要:類深入研究類有哪些方法底層實現(xiàn)不研究還有重載了兩個一共有個方法,其中一個為底層的實現(xiàn),其中兩個和重載方法。而沒有對鎖釋放但是要注意的是方法調(diào)用后,被喚醒的線程不會立馬獲得到鎖對象。 Object類深入研究 Object類有哪些方法 registerNatives()【底層實現(xiàn)、不研究】 hashCode() equals(Object obj) clone() toString()...
摘要:無論在中出現(xiàn)什么,都可以認(rèn)為它是對象除了八大基本數(shù)據(jù)類型。讓當(dāng)前線程等待某個對象的鎖,當(dāng)然應(yīng)該通過這個對象來操作了。但是要注意的是方法調(diào)用后,被喚醒的線程不會立馬獲得到鎖對象。主要的區(qū)別在于在釋放同時,釋放了對象鎖的控制。 前言 五一回家又?jǐn)喔艘粋€放假時間了~~~ 只有光頭才能變強 回顧前面: ThreadLocal就是這么簡單 多線程三分鐘就可以入個門了! 多線程基礎(chǔ)必要知識點!...
摘要:不合規(guī)的代碼示例合規(guī)解決方案參閱復(fù)制構(gòu)造函數(shù)與克隆也可以參閱應(yīng)該實現(xiàn)克隆覆蓋的類應(yīng)為并調(diào)用下面為引文翻譯談設(shè)計與作者的對話,作者首次在上發(fā)表,年月日復(fù)制構(gòu)造函數(shù)與克隆在你的書中,你建議使用復(fù)制構(gòu)造函數(shù)而不是實現(xiàn)和編寫。 今天在用 sonar 審核代碼, 偶然看到下面的提示:showImg(https://segmentfault.com/img/bVbqioZ?w=858&h=116)...
閱讀 727·2021-11-24 10:30
閱讀 1261·2021-09-24 09:48
閱讀 3079·2021-09-24 09:47
閱讀 3597·2019-08-29 17:11
閱讀 2880·2019-08-29 15:38
閱讀 2277·2019-08-29 11:03
閱讀 3599·2019-08-26 12:15
閱讀 1015·2019-08-26 10:45