轉殖物件 clone 方法

2022-08-24 07:27:14 字數 2016 閱讀 7417

有的時候我們需要在乙個專案裡面,使用兩個或多個一樣的物件,如果你使用「new」關鍵字重新建立物件的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據乙個物件完全轉殖出乙個一模一樣的物件,是非常有必要的,而且轉殖以後,兩個物件互不干擾。

在php4中我們使用「clone」這個關鍵字轉殖物件;12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

<?

classperson

// 這個人可以說話的方法,說出自己的屬性

functionsay()

}

$p1=newperson("張三","男", 20);

// 使用「clone」轉殖新物件p2,和p1物件具有相同的屬性和方法。

$p2=clone$p1;

$p2->say();

?>

php4定義了乙個特殊的方法名「__clone()」方法,是在物件轉殖時自動呼叫的方法,用「__clone()」方法將建立乙個與原物件擁有相同屬 性和方法的物件,如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法,  「__clone()」方法可以沒有引數,它自 動包含$this和$that兩個指標,$this指向複本,而$that指向原本;12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

<?

classperson

// 這個人可以說話的方法, 說出自己的屬性

functionsay()

// 物件轉殖時自動呼叫的方法, 如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法

function__clone()

}

$p1=newperson("張三","男", 20);

$p2=clone$p1;

$p1->say();

$p2->say();

?>

上例輸出:

我的名子叫:張三 性別:男 我的年齡是:20

我的名子叫:我是假的張三 性別:男 我的年齡是:30

JAVA 物件轉殖clone

有時候我們希望轉殖乙個已存在的物件,並對其進行操作,但是不希望改變原物件,這時使用clone技術就非常方便了。但是使用clone,也有一些需要注意的地方,因為clone有淺層轉殖和深層轉殖。還是習慣先直接上 結合 講解。注 如果你希望某個類具有clone功能,該類必須實現介面cloneable,它是...

PHP轉殖物件clone

有的時候我們需要在乙個專案裡面,使用兩個或多個一樣的物件,如果你使用 new 關鍵字重新建立物件的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據乙個物件完全轉殖出乙個一模一樣的物件,是非常有必要的,而且轉殖以後,兩個物件互不干擾。class person 這個人可以說話的方法,說出...

物件的轉殖(clone)

讓物件obj1轉殖物件obj var obj var obj1 function clone origin,target clone obj,obj1 使用for.in把obj物件的每乙個屬性值提取出來並賦值給物件obj1,這就完成了轉殖。關於以上那個轉殖,為了防止使用者不傳target的形參或者是...