11 物件比較

2021-09-25 17:13:44 字數 1656 閱讀 3763

1.數字比較用==,字串比較用equals(string str)

要進行物件比較,必須對物件中所有屬性的值進行比較。

範例:物件比較的基本方式

class

book

//省略無參構造方法和setter方法

public string gettitle()

public

double

getprice()

}public

class

demo

else

}}

上述程式存在問題:主方法相當於客戶端,客戶端的程式邏輯應該越簡單越好。所以物件比較應該由物件自己完成,即物件所對應的類應該提供物件比較的方法。

附:類的屬性使用private封裝,那麼在類的外部就不能通過物件直接呼叫屬性

class

info

}public

class

demo

}

附:將乙個物件作為引數傳回類的方法中,相當於取消封裝,使得物件可以直接訪問屬性。

class

info

public

void

fun(info temp)

}public

class

demo

}

附:乙個類接收本類物件形式的**在物件比較時很常見。

class

book

//省略無參構造方法和setter方法

public string gettitle()

public

double

getprice()

// 類接收自身物件,物件可以直接訪問屬性,不需要getter方法

// compare()有兩個功能:一帶回了要比較的資訊;二方便屬性訪問

public

boolean

compare

(book book)if(

this

== book)

// 執行「bka.equals(bkb)」時,有兩個物件:

// 乙個為當前物件this(呼叫方法的物件,即bka)

// 乙個為傳遞物件book(引用傳遞,即bkb)if(

this

.title.

equals

(book.title)

&&this

.price == book.price)

else}}

public

class

demo

else

}}

總結

(1)物件比較的方法必須定義在類中;

(2)物件比較時一定要判斷是否為null,記憶體位址是否相同,屬性是否相同。

1 1 物件模型

q1 c 的類有兩種資料成員 static 資料成員與 nonstatic 資料成員,有三種成員函式 static,nonstatic,virtual。q2 在虛繼承的情況下,base class不管在繼承串鏈中被派生多少次,永遠只會存在乙個例項 稱為subobject q3 c 物件模型。每個物件...

11 物件的構造

目錄從程式設計的角度,物件只是變數,因此 問題 程式中如何對乙個物件進行初始化,使得不管在什麼地方建立類物件,其成員變數的初始值都為固定值?解決方案1 存在的問題 解決方案2 建構函式 示例 建構函式 注意 物件定義和物件宣告不同 建構函式的自動呼叫 class test test int v in...

ruby之一物件比較

ruby物件的比較有三種方式 1 比較兩個物件的值是否相等,返回 true,flase 等於 不等於 a 1 b 1.0 a b true2 比較兩個物件的值 型別是否相等,返回 true,flase eql?a 1 b 1.0 a.eql?b flase a為整數型,b為浮點型 3 比較兩個物件在...