實體類中的toString方法
阿新 • • 發佈:2018-12-18
1.在Java中每個類都預設繼承Object類,除非宣告繼承某個類。而Object類中有一個叫做toString的方法。該方法返回的是該Java物件的記憶體地址經過雜湊演算法得出的int型別的值在轉換成十六進位制。這個輸出的結果可以等同的看作Java物件在堆中的記憶體地址。 例如:
package com.cal.toString; public class Test1 { public static void main(String[] args){ Object o1 = new Object(); System.out.println(o1.toString()); } }
結果:[email protected]
2.如果我們定義一個實體類,返回的結果又會是什麼呢?
package com.cal.toString; public class Test1 { public static void main(String[] args){ Person p1 = new Person("king", 20); System.out.println(p1.toString()); } } class Person{ String name; int age; Person(String name,int age){ this.name = name; this.age = age; } }
結果:[email protected]很顯然業務邏輯不太合適,不應該是一串看不懂的數字,而應該是符合邏輯的東西
3.這就表示Object中的toString方法已經不夠用了。所以Object中的toString方法就是要被重寫。
package com.cal.toString; public class Test1 { public static void main(String[] args){ Person p1 = new Person("king", 20); System.out.println(p1.toString()); } } class Person{ String name; int age; Person(String name,int age){ this.name = name; this.age = age; } public String toString(){ return "Person[name="+name+", age="+age+"]"; } }
這裡就把toString方法重新寫了,注意toString的返回值是String,結果明顯就很符合邏輯了
結果:Person[name=king, age=20]