Object的toString方法
雖然Object提供了toString方法的一個實現,但是,它返回的內容並不是類的用戶所期待的,比如,我們定義類,
public class Point {
private int x;
private int y;
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Point point = new Point(2, 3);
System.out.println(point);
}
}
運行,我們可以看到,結果是
Point@659e0bfd
這個結果並不是我們需要的,因爲這並沒有直觀的代表了point的信息,這是因爲,Object的toString方法,返回的是類名和實例散列值的無符號16進製表示。
如何改寫
toString的約定指出,返回的字符串應該是一個“簡潔的,但信息豐富,並且易於閱讀的表達形式”。
雖然遵守toString約定並不像遵守equals和hasdCode那麼重要,但是,提供一個好的toString,可以使一個類使用起來更加愉快。
實際應用中,toString應該返回對象中包含的所有令人感興趣的內容。比如,Point類,我們感興趣的是其x和y的值,那麼我們可以這樣改寫toString方法,
public String toString() {
// TODO Auto-generated method stub
return "Point x: " + this.x + ";y: " + this.y;
}
然後在代碼中,我們就可以得到我們期望得到的內容。
Point x: 2;y: 3