黑馬程序員Java零基礎(chǔ)視頻教程_上部(Java入門,含斯坦福大學(xué)練習(xí)題+力扣算

這段代碼的邏輯是先創(chuàng)建一個(gè)新的數(shù)組newData
,用于存儲(chǔ)當(dāng)前對(duì)象中的data
數(shù)組引用所指向的數(shù)組對(duì)象中的元素。然后通過(guò)調(diào)用super.clone()
方法,淺克隆得到一個(gè)新的對(duì)象u
,u
對(duì)象的基本數(shù)據(jù)類型屬性值與原始對(duì)象相同,但是對(duì)象引用類型屬性所指向的對(duì)象仍然是原始對(duì)象中的對(duì)象。最后,將u
對(duì)象中的data
數(shù)組引用修改為newData
數(shù)組的引用,從而讓u
對(duì)象中的data
數(shù)組引用所指向的數(shù)組對(duì)象與原始對(duì)象中的data
數(shù)組引用所指向的數(shù)組對(duì)象不同。因此,這段代碼實(shí)現(xiàn)了基于淺克隆的深克隆,除了data
數(shù)組中的元素外,其他屬性都是淺克隆的。

標(biāo)簽: