1、關於object中的toString方法:java
1.SUN公司在Object類中設計toString方法的目的:返回java對象的字符串的表示形式。node
2.在現實的開發過程當中,Object裏面的toString方法已經不夠用了,由於Object的toString方法實現的結果不滿意。Object中的toString方法實現的結果不滿意。Object中的呢toString方法要被重寫了。git
3.println打印的若是是對象的話,那麼就會默認打印對象的toString方法獲得的結果。github
4.SUN公司的默認toString方法是這樣的算法
public String toString(){ return getClass().getname() + "@" + Interger.toHexString(hashCode()); }
object中的toString方法返回:類名@java對象的內存地址通過哈希算法獲得的int類型值在轉換爲十六進制。這個輸出能夠等同看做java對象在堆中內存地址。微信
5.舉個例子學習
package com.bjpowernode.java_learning; public class D56_1_ { public static void main(String[] args) { Object o1 = new Object(); String s1 = o1.toString(); System.out.println(s1); Person56 p1 = new Person56("sha",52); System.out.println(p1);//咱們能夠看出來,這裏打印出來的不是對象,而是打印的對象的toString方法的結果,因此和第11行結果相同 String s2 = p1.toString(); System.out.println(s2); } } class Person56 { String name; int age; Person56(String name ,int age){ this.name = name ; this.age = age; } //重寫這個方法,就要按照項目的實際需求進行從新編寫 public String toString() { return "Person[name=" + name + ",age=" + age +"]"; } }
2、關於Object中的equals方法大數據
1.Object中的equals方法:ui
public boolean equals(o2){ return (this == obj);//等號兩邊是引用類型,則比較內存地址,地址相同則返回true.反之,則返回false }
//Object中的equals方法比較的是兩個引用的內存地址。java對象中的equals方法的設計目的在於:判斷兩個對象是否同樣。this
2.舉個例子
package com.bjpowernode.java_learning; public class D56_2_equalsMethodAnalysis { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); boolean b1 = o1.equals(o2); System.out.println(b1); Star56 s1 = new Star56(100,"xiaoming"); Star56 s2 = new Star56(100,"xiaoming"); System.out.println(s1.equals(s2)); //這樣比較出來的是false,由於比較的是兩個對象的內存地址,可是這樣顯然是不符合咱們的預期 //其實咱們想要比較的是兩個對象裏面的內容是否是一致的。因而咱們重寫 } } class Star56{ int id; String name; public Star56(int id,String name) { this.id = id; this.name = name; } }
3、源碼:
D56_1_toStringMethodAnalysis,java
D56_2_equalsMethodAnalysis.java
地址:
https://github.com/ruigege66/Java/blob/master/D56_1_toStringMethodAnalysis,java
https://github.com/ruigege66/Java/blob/master/D56_2_equalsMethodAnalysis.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料