物件屬性使用 clone

2022-06-10 04:45:06 字數 680 閱讀 5644

類包含的例項字段屬於某個類型別,這種情況相信大家都見到過。

通常,該例項字段設定為private,類方法中含有對其get,set方法。

有個類將其他類作為自己的私有屬性,該類沒有使用set方法,私有屬性類物件居然就發生了變化,可不可怕,例子如下

public

class

test }​

class

peoplex

public

void

setaccount(account account)

public

account getaccount() ​}

​class

account

public

account(){}

public

void setbalance(long

balance)

public

long

getbalance()

}

peoplex提供了乙個私有物件屬性的引用,這裡指的就是cracker

示意 圖如下

原因了解了,那怎麼解決呢?

clone 物件的使用

當 person p1 p 執行之後,是建立了乙個新的物件嗎?首先看列印結果 可以看出,列印的位址值是相同的,既然位址都是相同的,那麼肯定是同乙個物件。p 和 p1 只是引用而已,他們 都指向了乙個相同的物件 person 23,zhang 可以把這種現象叫做引用的複製。上面 執行完成之後,內 存中...

JAVA 物件轉殖clone

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

PHP轉殖物件clone

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