簡體   English   中英

原始數據類型和類數據類型的equals()方法和'=='運算符

[英]equals() method and '==' operator for primitive data types and class data types

我已經知道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();

考慮到這個實現,使用方法比較類數據類型(如String)是必須的,並且在處理原始數據類型時可以使用==運算符是正確的,即使對象比較是完成而不是像getAge() == 2這樣的簡單比較?

是否正確使用方法來比較類數據類型(如String)是正確的

是。

並且在處理原始數據類型時可以使用==運算符

是。

即使進行了對象比較而不是像getAge()== 2這樣的簡單比較?

不,這是不正確的。 原始類型不是對象,因此沒有equals()方法可以調用,因此您唯一的選擇是通過==比較值,對於始終產生所需結果的基本類型。

這是絕對正確的,處理原始類型,如int雙字節char,等等,你必須使用==比較它們,因為它們不是對象,所以它們不實現equals()。 所以澄清一下,其余的都沒問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM