- Scala编程(第5版)
- (德)马丁·奥德斯基等
- 359字
- 2022-05-06 15:51:44
6.3 重新实现toString方法
当我们在前一节中构建Rational实例时,编译器打印了“Rational@ 5dc7841c”。编译器是通过对Rational对象调用toString方法来获取这个看上去有些奇怪的字符串的。Rational类默认继承了java.lang.Object类的toString实现,这个实现只是简单地打印出类名、@符号和一个十六进制的数字。toString方法的主要意图是帮助程序员,在调试输出语句、日志消息、测试失败报告,以及编译器和调试器输出中给出相应的信息。目前由toString方法提供的结果并不是特别有帮助的,因为它没有给出关于有理数的值的任何线索。一个更有用的toString实现可能是打印出Rational对象的分子和分母。可以通过给Rational类添加toString方法来重写(override)默认的实现,就像这样:
在方法定义之前的override修饰符表示前一个方法定义被重写覆盖了(第10章有更多相关内容)。由于Rational(有理数)现在可以漂亮地显示了,我们移除了先前版本的Rational类中那段用于调试的println语句。可以在编译器中测试Rational类的新行为: