1. 程式人生 > >實體類中的toString方法

實體類中的toString方法

        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]