2013-08-26 44 views
-1

這個問題可能有點含糊,但任何人都可以給我一個關於引用平等和對象平等之間的區別是什麼的完整解釋?平等和對象平等之間的差異

+2

沒有一種語言,你可能不會得到一個很好的答案。使用谷歌搜索會得到更好的結果。 –

+0

家庭作業轉儲問題#2爲這張海報。更好的是,你應該做你自己的d @ mn作業,而不是在你的作業上拋棄你的作業問題。 –

回答

0

在面向對象的語言(如Java)中,對象是包含狀態和行爲的數據結構。對象的狀態由其內部數據字段的值確定,其行爲取決於爲對象定義的方法(函數或過程)(並且通常在對象的內部字段上運行 - 但不一定) 。對象總是通過引用來訪問。也就是說,一個變量保存一個指向對象內存位置的指針。

因此,對象可能擁有價值和位置。

平等測試兩個對象是否具有相同的「值」(由對象的內部狀態定義),即「這兩個對象是否具有相同的值?」

身份測試對對象的兩個引用是否相同,即「這兩個對象是否是同一個對象(在內存中的相同位置)?」

您會注意到,如果對象具有完全相同的值但是具有不同身份(如果它們是不同存儲位置中的單獨結構),則可能是這樣。兩個對象引用永遠不可能具有相同的標識(即引用內存中相同的數據結構)但不同的值。

0

通常,引用相等將指示兩個指針指向相同的地址。對象相等將是具有相同數據的不同內存區域中的兩個對象。

說兩個指針指向同一個對象,並且兩個對象是彼此的精確副本之間的區別。