使用system.out.println輸出類名問題

在Java中,直接將類的對象使用system.out.println輸出,其中輸出的類的具體名和後面的一串字符,

package com.neusoft.wangx;
public class MyClass {
 public static void main(String[] args) {
  MyClass2 myClass2 =new MyClass2();
  System.out.println(myClass2.toString());
 }
}
class MyClass2{
 public void print(){
  System.out.println("hello");
 }
}
輸出結果爲:com.neusoft.wangx.MyClass2@164f1d0d
就是後面這個@164f1d0d
@和後面的字符串分別代表啥呢?

因爲直接輸出一個類的對象的時候,會調用這個類的toString()方法,這個方法有些類是覆蓋了的,比如String,Integer。
你自己寫的類沒有覆蓋這個方法的話就是繼承Object類的這個方法,Object中toString()方法的實現是這樣
的getClass().getName() + "@" + Integer.toHexString(hashCode()) 後面跟的是這個類的哈希碼,
如果你希望這個類打印出來輸出你希望的格式,你就要覆蓋這個、toString方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章