Re: [問題] 自訂類別繼承Object的問題

看板java作者 (斷背山狼與羊)時間19年前 (2006/06/01 19:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
: 但是問題來了 : 當我 Ball b1 = new Ball(18.4, "red ball"); : Ball b2 = new Ball(18.4, "red ball"); : 然後 System.out.println(b1 == b2); <-- 這個false我能理解 畢竟兩個不同物件 : System.out.println(b1.equals(b2)); <-- 這個false我就不能理解了 : 它不是比較這兩個物件的內容是否相同嗎? : 這個問題請教版上先進 感謝 字串的 S1==S2 是看指向的記憶體是否相同 字串的 equals 是判定內容是否相同 這點沒有疑問 物件的 == 和字串一樣是看參考的記憶體是否相同 關於物件的equals方法說明如下: public boolean equals(Object obj) 比較兩物件是否相等。但唯有在"=="運算子 無法比對兩物件時,才需要覆蓋equals方法 且同時還必須覆蓋hashCode方法 public int hashCode() 傳回物件在hash table的對應位置(hash code) 同物件當然產生相同code,但不同物件可以共享code 意即共同指向相同參考 似乎是,物件的equals也是指參考的相同與否 難到String有特別覆蓋過? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.40.35 ※ 編輯: Egriawei 來自: 61.230.40.35 (06/01 19:30)
文章代碼(AID): #14VihoRx (java)
文章代碼(AID): #14VihoRx (java)