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 比較兩個物件在...