**今天在看《java核心技术》的时候看到这样一段话:
强烈建议为自定义的每一个类增加toString方法,这样做不仅自己收益,而且所有使用这个类的程序员也会收益。
这是为啥?带着疑惑去了解了一下,整理到了这篇博客里:
首先我们看看重写前后打印输出语句的差别叭:
重写前:
重写后:
大家感觉到了嘛,当需要将对象输出到控制台的时候,默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的格式是类名[email protected]+hashCode,就是我们重写前输出的形式。这个Hashcode码并不能直接表示出对象的属性。所以重写toString方法可以让我们输出的时候了解我们的对象信息,不同的类与方法可以重写成自己需要的形式。
即:如果想自定义输出信息必须重写toString()方法。
而对于hashcode()方法和equals()方法,原理也是一样的,重写的目的是为了方便我们之后的操作。