您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Object toString方法如何在Java項目中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
一、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方法,那么輸出來的默認的字符串內容是“類名+哈希編碼”, * 如:dog=cn.galc.test.Dog@150bd4d * 這里的d就是一個引用類型,打印的時候,這個引用類型d會自動調用toString()方法將自己轉換成字符串然后再與字符串”d:=”相連, * 然后一起被打印出來。d為什么可以自動調用toString()方法呢,Dog類里面也沒有聲明這個toString()方法。 * 這是因為toString()方法是Object類里面的方法,而所有的類都是從Object類繼承下來的, * Dog類當然也不例外,所以Dog類繼承了Object類里面的toString()方法, * 所以Dog類的對象當然可以直接調用toString()方法了。 * 但是Dog類對繼承下來的toString()方法很不滿意, * 因為使用這個繼續(xù)下來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()方法,把默認的字符串內容改成我們自己想要表達的正常信息的字符串內容。
看完上述內容,你們對Object toString方法如何在Java項目中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。