自定義實現「轉殖」

2021-08-04 10:43:54 字數 750 閱讀 3977

1.自定義實現cloneable介面。這是乙個標記性的介面,實現該介面的物件可以實現「自我轉殖」,介面沒有定義實現方法

2.自定義實現自己的clone方法。

3.實現clone()方法時通過super.clone();呼叫object()方法來得到該物件的副本,並返回該副本,如下程式實現了「自我轉殖」:

class address

}//實現clone介面

class user implements cloneable

public user clone() throws clonenotsupportedexception

}public class clonetest

}

object類提供的clone機制只對物件裡各例項變數進行「簡單複製」,如果例項變數的型別是引用型別,object的clone機制也只是簡單的複製這個引用變數,這樣原有物件的引用型別的例項變數與轉殖物件的引用型別例項變數依然指向記憶體中同乙個例項。

object類提供的clone()方法不僅能夠簡單地處理「複製」物件的問題,而且這種「自我轉殖」機制十分高效。比如乙個100個元素的int陣列,系統預設的clone方法比靜態的copy快2倍。

object提供的clone方法雖然簡單、易用但它只是一種「淺轉殖」——他只轉殖該物件的所有成員變數值,不會對引用型別的成員變數值所引起的物件進行轉殖。如果開發者需要對物件進行深轉殖,則需要開發者對自己進行「遞迴」轉殖,保證所有引用型別的成員變數值所引用的變數值被複製了。

自定義Toast實現自定義Toast布局

平時我們使用toast的時候都是這樣的一種方法 toast toast toast.maketext context,duration 現在我們來自定義下toast的布局,首先看下toast建立時的源 public static toast maketext context context,char...

實現自定義IFormattable

using system using system.collections using system.linq using system.text using system.collections.generic using system.runtime.serialization namespac...

自定義tabcontrol實現

using system using system.collections generic using system.drawing using system.linq using system.text using system.windows forms namespace shengxinso...