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