【轉】為什么要重寫hashcode()方法和toString()方法


Object 類 包含toString()和hashCode()方法。

一、toString():

在Object類里面定義toString()方法的時候返回的對象的哈希code碼,這個hashcode碼不能簡單明了的表示出對象的屬性。所以要重寫toString()方法。
當需要將一個對象輸出到顯示器時,通常要調用他的toString()方法,將對象的內容轉換為字符串.java中的所有類默認都有一個toString()方法。
默認情況下 System.out.println(對象名)或者System.out.println(對象名.toString())輸出的是此對象的類名和此對象對應內存的首地址(形如:Demo@774e1f2b),如果想自定義輸出信息必須重寫toString()方法。

 

二、hashCode():

在Object類里面定義的equals比較的是對象的引用是否指向同一塊內存地址。  一般情況下比較兩個對象時比較他的值是否一致,所以要進行重寫。重寫之后是為了比較兩個對象的value值是否相等。 特別指出,利用equals比較八大包裝對象(如int,float等)和String類(因為該類已重寫了equals和hashcode方法)對象時,默認比較的是值,在比較其它對象都是比較的引用地址。

 

轉載:https://www.cnblogs.com/yan217/p/5664895.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM