Java toString解析

Java toString解析

咱們知道,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
*/
相關文章
相關標籤/搜索