[英]Calling a print method from another class with primitive data types in it
[英]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.