對於基本型別,無所謂深淺複製。
例如對於陣列來說,因為陣列不是型別化陣列,所以你可以往陣列裡面放置基本型別資料和引用型別資料,對於包含引用型別的資料的陣列,討論才有意義。
var array:array = [1,2,3,];對於淺複製,shallowcopyarray最後乙個元素和原始陣列最後乙個元素的引用位址是一樣;var shallowcopyarray:array = array.concat();
var clonearray:array = objectutil.clone(array) as array;
對於深複製,clonearray的最後乙個元素和原始陣列最後乙個元素的引用位址是不一樣;
內容位址的不一樣,導致你操作的是否是同乙個物件。
對於自定義物件的複製,譬如說自己提供乙個clone()方法提供自身的複製物件。一般來說涉及到原型模式。
如果自定義物件中包含了另乙個物件(自定義的),在你複製自身之前,需要做一些事情,不然它複製出來的物件就是乙個object啦,而非你自定義的物件。
<?xml version="1.0" encoding="utf-8"?>person:xmlns:s="library:"
xmlns:mx="library:"
minwidth="955" minheight="600"">
package com.mode.clonecompany:}}
package com.mode.clone}
淺複製 深複製
second,來說說shallow copy and deep copy的定義和我自己的一些理解。僅供參考 淺複製 shallow copy 如果欄位是值型別的。則對該字段執行逐位複製,如果欄位是引用型別,則複製引用但不複製引用的物件 因此,原始物件及其副本引用同一物件。即被複製物件的所有變數都含有...
深複製 淺複製
深複製又叫深拷貝 淺複製又叫淺拷貝 位拷貝。為了理解什麼叫深複製和淺複製,我們舉乙個例子,假如我們有乙個類叫cdemo,有兩個成員,a 和 str.class cdemo 我們再定義乙個建構函式 cdemo int pa,char cstr 然後執行 cdemo a 10,hello cdemo b...
深複製淺複製
淺複製 所謂的淺拷貝就是拷貝指向物件的指標,意思就是說 拷貝出來的目標物件的指標和源物件的指標指向的記憶體空間是同一塊空間.淺拷貝只是一種簡單的拷貝,讓幾個物件公用乙個記憶體,然而當記憶體銷毀的時候,指向這個記憶體空間的所有指標需要重新定義,不然會造成野指標錯誤 深複製所謂的深拷貝指拷貝物件的具體內...