咱們知道,Java全部的類都是Object類的派生類,toString就是Object類中的一個方法。java
咱們看看它的源代碼。ide
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
能夠看見,toString方法返回的是一個字符串。該字符串由 類名+ "@" + 此對象的哈希碼(無符號16進制)。code
當咱們沒有重寫Object類中的toString方法時,在調用System.out.println()直接傳入對象名的時候,會自動調用對象的toString方法,打印出上述的內容。對象
如:字符串
class Man{ public Man() { } } public class Test { public static void main(String[] args) { Man Terry = new Man(); System.out.println(Terry); } } // 結果 // Man@8efb846
既然咱們知道在方法或定義,強制類型爲String時,直接使用對象名會隱性調用toString方法,那麼咱們天然能夠重寫toString方法實現本身的目的。get
import java.util.*; class Man{ static int code = 0; private int number = -1; public Man() { code++; number = code; } @Override public String toString() { return "I am No." + number; } } public class Test { public static void main(String[] args) { Man Terry = new Man(); Man Tom = new Man(); Man Mary = new Man(); System.out.println(Terry); System.out.println(Tom); System.out.println(Mary); } } // 結果 /* I am No.1 I am No.2 I am No.3 */