Java中的類別都繼承了Object類別,而toString根據Java API的說明為
"Returns a string representation of the object."
因此,做了個簡單的範例如下:
public class MyClass {
public static void main(String args[]){
MyClass obj = new MyClass();
System.out.println(obj);
}
}
若直接print class所生成的object內容,將會如下面預設的訂定
getClass().getName() + '@' + Integer.toHexString(hashCode())
而可以得到物件實體的內容為MyClass@4ab8fba5
雖然有了這個基本概念,但這邊我們主要是探討override toString的使用 ,為什麼我們
要override呢?也許我們可以思考,當我們要記錄此object的生成時 ,我們可以組織自己
print出該object生成format至log內
public class toString_override {
public static void main(String args[]){
toString_override obj = new toString_override("Zhibin", "Huang");
System.out.print(obj);
}
}
class toString_override{
private String firstname;
private String lastname;
public toString_override(String firstname, String lastname){
this.firstname = firstname;
this.lastname = lastname;
}
public String toString(){
return "My name is "+lastname+" "+firstname;
}
}
此時印出class object內容,已經是我們所自訂的toString method所定義的format
My name is Huang Zhibin如此一來,每當我們做該類別的初始化時,便可以寫入自訂格式的紀錄!
留言
張貼留言