• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

面向 Java 开发人员的 Scala 指南: 类操作

发布: 2008-6-30 14:00 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 46次 | 进入领测软件测试网论坛讨论

领测软件测试网 软件测试技术门户S4\rt.b,HT

软件测试技术门户&A}.R%FIs|8?

软件测试技术门户XZhx(o5jubc.~&_L
清单 4. 构造函数链软件测试技术门户5mf-wy |
                软件测试技术门户,P#d3Z!?E|DYz
class Rational(n:Int, d:Int)
p#v"C!VD%kO{
~w[Z+S a  def this(d:Int) = { this(0, d) }
Bn}$F;G 

)?,_!ESbW@UR 软件测试技术门户N2n5r(i8mOc

软件测试技术门户 mG9U&iVU/v'y
注意,Scala 的构造函数链通过调用首选构造函数(Int,Int 版本)实现 Java 构造函数链的功能。软件测试技术门户3uiyl:z+Q6oKC!Do

软件测试技术门户1e.q }*K7O9MsZ e

实现细节软件测试技术门户{f }9xh\^

,LG)^F S!|8Q(c在处理有理数时,采取一点数值技巧将会有所帮助:也就是说,找到公分母,使某些操作变得更容易。如果要将 1/2 与 2/4 相加,那么 Rational 类应该足够聪明,能够认识到 2/4 和 1/2 是相等的,并在将这两个数相加之前进行相应的转换。软件测试技术门户+h!q/z"F |

+N ^q7@ I KL.dT嵌套的私有 gcd() 函数和 Rational 类中的 g 值可以实现这样的功能。在 Scala 中调用构造函数时,将对整个类进行计算,这意味着将 g 初始化为 n 和 d 的最大公分母,然后用它依次设置 n 和 d。软件测试技术门户&xDP;^%R

软件测试技术门户Lzy:G$^dm9a"fc

回顾一下 清单 1 就会发现,我创建了一个覆盖的 toString 方法来返回 Rational 的值,在 RunRational 驱动程序代码中使用 toString 时,这样做非常有用。软件测试技术门户] iL9fh