Scala Rational对象的toString方法

开发 后端
本文节选自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻译的《Programming in Scala》的第六章。Scala是一种针对 JVM 将函数和面向对象技术组合在一起的编程语言。

前例中当Rational实例被创建之后,解释器打印输出“Rational@a0b0f5”。解释器是通过调用Rational对象的toString方法获得的这个看上去有些好玩儿的字串。缺省情况下,Rational类继承了定义在java.lang.Object类上的toString实现,只是打印类名,一个@符号和一个十六进制数。toString的结果主要是想通过提供可以用在除错时的语句打印,日志消息,测试错误报告和解释器,除错器输出的信息来尝试对程序员提供帮助。目前toString提供的结果不会特别有用,因为它没有给出任何它被调用的Rational数值的任何线索。更有用的toString实现应该打印出Rational的分子和分母。你可以通过在Rational类里增加toString方法的方式重载:override缺省的实现,如:

51CTO编辑推荐:Scala编程语言专题

  1. class Rational(n: Int, d: Int) {  
  2.  override def toString = n +"/"+ d  
  3. }  

方法定义前的override修饰符标示了之前的方法定义被重载;第10章会更进一步说明。现在分数显示得很漂亮了,所以我们去掉了前一个版本的Rational类里面的println除错语句。你可以在解释器里测试Rational的新行为:

  1. scala> val x = new Rational(13)  
  2. x: Rational = 1/3 
  3. scala> val y = new Rational(57)  
  4. y: Rational = 5/7 

【相关阅读】

  1. 学习Scala中的Rational类:分数的模型化
  2. Scala中的富包装器:富操作和富类列表
  3. Scala操作符的优先级和关联性
  4. Scala对象的相等性比较
  5. Scala的数学运算、关系和逻辑操作及位操作符
责任编辑:book05 来源: Artima
相关推荐

2009-07-22 09:08:09

Scalaabove方法

2009-07-21 11:25:03

ScalaRational类

2009-11-23 20:36:35

ibmdwRational

2009-07-21 08:21:46

Scala对象相等性

2009-07-22 09:22:20

Scala工厂对象

2009-09-24 09:41:00

Scala讲座Scala

2009-09-09 11:14:16

Scala对象

2009-06-30 14:32:11

toString方法递归

2010-11-17 11:31:22

Scala基础面向对象Scala

2010-03-11 10:34:22

Scala

2011-06-28 11:06:16

Scala

2009-06-22 14:26:12

ScalaXML对象

2009-07-21 17:21:57

Scala定义函数

2009-07-20 18:03:26

Scala程序Singleton对象

2009-06-16 17:09:17

Scala面向对象函数编程

2011-03-18 19:37:38

Eventable接口QtWidget

2011-06-28 11:05:19

Qt QWidget Eventable

2009-07-20 16:56:51

Scala类的定义

2009-03-31 09:49:40

Rational功能测试性能测试

2009-07-08 16:10:24

Scala简介面向对象函数式
点赞
收藏

51CTO技术栈公众号