Java中Object toString方法簡介_動力節點Java學院整理

NO IMAGE

一、Object類介紹 

Object類在Java裡面是一個比較特殊的類,JAVA只支援單繼承,子類只能從一個父類來繼承,如果父類又是從另外一個父類繼承過來,那他也只能有一個父類,父類再有父類,那也只能有一個,JAVA為了組織這個類組織得比較方便,它提供了一個最根上的類,相當於所有的類都是從這個類繼承,這個類就叫Object。所以Object類是所有JAVA類的根基類,是所有JAVA類的老祖宗。所有的類,不管是誰,都是從它繼承下來的。

二、toString方法介紹 

一個字串和另外一種型別連線的時候,另外一種型別會自動轉換成String型別,然後再和字串連線。基礎的資料型別int,float,double轉換成字串比較簡單,按照它們的數字轉換過來就成了,可以引用型別呢,Person p = new Person();一個字串加上這個p,你就不知道要怎麼把這個p轉換成字串了,因為這個p是一個引用型別。 p = new Person();


public class TestToString {
public static void main(String[] args) {
Dog d = new Dog();
/**
* 如果沒有重寫toString方法,那麼輸出來的預設的字串內容是“類名 雜湊編碼”,
* 如:[email protected]
* 這裡的d就是一個引用型別,列印的時候,這個引用型別d會自動呼叫toString()方法將自己轉換成字串然後再與字串”d:=”相連,
* 然後一起被列印出來。d為什麼可以自動呼叫toString()方法呢,Dog類裡面也沒有宣告這個toString()方法。
* 這是因為toString()方法是Object類裡面的方法,而所有的類都是從Object類繼承下來的,
* Dog類當然也不例外,所以Dog類繼承了Object類裡面的toString()方法,
* 所以Dog類的物件當然可以直接呼叫toString()方法了。
* 但是Dog類對繼承下來的toString()方法很不滿意,
* 因為使用這個繼續下來toString()方法將引用物件轉換成字串輸出時輸出的是一連串令人看不懂的雜湊編碼。
* 為了使列印出來的資訊使得正常人都能看得懂,因此要在Dog類裡面把這個繼承下來的toString()方法重寫,
* 使得呼叫這個toString()方法將引用物件轉換成字串時列印出來的是一些正常的,能看得懂的資訊。
* 在子類重寫從父類繼承下來的方法時,從父類把要重寫的方法的宣告直接copy到子類裡面來,
* 這樣在子類裡面重寫的時候就不會出錯了。
*/
System.out.println("dog=" d);//列印結果:dog=I'm a cool Dog
}
}
class Dog{
/**
* 在這裡重寫了Object類裡面的toString()方法後,
* 引用物件自動呼叫時呼叫的就是重寫後的toString()方法了,
* 此時列印出來的顯示資訊就是我們重寫toString()方法時要返回的字串資訊了,
* 不再是那些看不懂的雜湊編碼了。
*/
public String toString() {
return "I'm a Dog";
}
}

任何一個類都是從Object類繼承下來的,因此在任何一個類裡面都可以重寫這個toString()方法。toString()方法的作用是當一個引用物件和字串作連線的時候,或者是直接列印這個引用物件的時侯,這個引用物件都會自動呼叫toString()方法,通過這個方法返回一個表示引用物件自己正常資訊的字串,而這個字串的內容由我們自己去定義,預設的字串內容是“類名 雜湊編碼”。因此我們可以通過在類裡面重寫toString()方法,把預設的字串內容改成我們自己想要表達的正常資訊的字串內容。

以上所述是小編給大家介紹的Java中Object toString方法簡介_動力節點Java學院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對指令碼之家網站的支援!

您可能感興趣的文章:

java中的 toString()方法例項程式碼Java String 和StringBuffer的詳解及區別Java String物件使用方法詳解java 中InputStream,String,File之間的相互轉化對比Java 中 String,StringBuffer 和 StringBuilder 的區別及用法JAVA String轉化成java.sql.date和java.sql.time方法示例java 中 String format 和Math類例項詳解