高淇Java視訊程式碼中,為啥使用Date類別新建物件列印輸出的是時間,而使用自建物件列印輸出的卻是雜湊碼位址?
巴扎黑
巴扎黑 2017-06-23 09:14:34
0
4
955

最近看高老師影片時發現一個知識點不太理解,程式碼如下:

public class Test065 {
    public static void main(String[] args){
        Date d = new Date();//得到当前时间的毫秒数
        System.out.println(d);
        Dog a = new Dog();
        System.out.println(a);
    }
}

class Dog{
    int age;
}

輸出結果如下:

Thu Jun 15 19:43:29 CST 2017
com.test065.Dog@33909752

同樣是列印一個對象,為什麼Date類別物件就是輸出當前時間,而自建對象就是輸出雜湊碼呢?

小萌新求各位朋友解惑,非常感想!

巴扎黑
巴扎黑

全部回覆(4)
学霸

Println方法會呼叫輸出物件的toString方法,如果物件沒有定義toString方法,就依照繼承鏈往父類別找。
Date有定義toString方法,所以輸出的是格式化的屬性資訊。
自訂的Dog類別沒有toString方法,所以用的父類別的toString方法,也就是Object的

巴扎黑

列印一個物件的時候,會列印出它的toString方法的回傳值,Date重寫了toString方法。 Dog沒有重寫toString則會呼叫父類別Object的toString方法

typecho

Date類別重寫了Object父類別中的toString(),你自己的類別沒有啊。 。 。看下Date類別的源碼

女神的闺蜜爱上我

重寫了toString方法,你可以自己到原始碼看。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板