一、關於object中的toString方法: 1.SUN公司在Object類中設計toString方法的目的:返回java對象的字元串的表示形式。 2.在現實的開發過程中,Object裡面的toString方法已經不夠用了,因為Object的toString方法實現的結果不滿意。Object中 ...
一、關於object中的toString方法:
1.SUN公司在Object類中設計toString方法的目的:返回java對象的字元串的表示形式。
2.在現實的開發過程中,Object裡面的toString方法已經不夠用了,因為Object的toString方法實現的結果不滿意。Object中的toString方法實現的結果不滿意。Object中的呢toString方法要被重寫了。
3.println列印的如果是對象的話,那麼就會預設列印對象的toString方法得到的結果。
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 +"]"; } }
二、關於Object中的equals方法
1.Object中的equals方法:
public boolean equals(o2){ return (this == obj);//等號兩邊是引用類型,則比較記憶體地址,地址相同則返回true.反之,則返回false }
//Object中的equals方法比較的是兩個引用的記憶體地址。java對象中的equals方法的設計目的在於:判斷兩個對象是否一樣。
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; } }
三、源碼:
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.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料