Scala编程(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.3 重新实现toString方法

当我们在前一例中创建Rational实例时,解释器打印了“Rational@6121a7dd”。解释器是通过对Rational对象调用toString来获取这个看上去有点奇怪的字符串的。Rational类默认继承了java.lang.Object类的toString实现,这个实现只是简单地打印出类名、@符和一个十六进制的数字。toString的主要意图是帮助程序员在调试输出语句、日志消息、测试失败报告,以及解释器和调试器输出中给出相应的信息。目前由toString提供的结果并不是特别有帮助,因为它没有给出关于有理数的值的任何线索。一个更有用的toString实现可能是打印出Rational的分子和分母。可以通过给Rational类添加toString方法来重写override)默认的实现,就像这样:

在方法定义之前的override修饰符表示前一个方法定义被重写覆盖了(第10章有更多相关内容)。由于Rational(有理数)现在可以漂亮地显示了,我们移除了先前版本的Rational中那段用于调试的println语句。可以在解释器中测试Rational的新行为: