我已經知道equals()
方法(或與此類似的任何其他類型)比較給定類型的值與==
運算符比較if在表達式中聲明兩個引用是一樣的,但是兩個對象的每場同一類比較時,我有一個問題,代碼如下:equals()方法和'=='操作符用於原始數據類型和類數據類型
//fields are String name, String surname, int age and boolean gender belonging to the Person class.
public boolean isYou(Person person)
{
return
getName().compareToIgnoreCase(person.getName()) == 0 &&
getSurname().compareToIgnoreCase(person.getSurname()) == 0 &&
getAge() == person.getAge() &&
getGender() == person.getGender();
在考慮到這種實現,是正確的狀態,這是必須使用方法來比較類數據類型(如字符串),並可能在處理原始數據類型時使用==
運算符,即使對象比較完成而不是像getAge() == 2
這樣的簡單比較?
'person.getAge()'不是一個對象 - 它的類型是'int',這使得它成爲一個基元。運算符應用於表達式的類型,而不是基於組成表達式的任何組件。 – chrylis