scala基础编程案例

您所在的位置:网站首页 乐3pro参数 scala基础编程案例

scala基础编程案例

2023-05-21 01:23| 来源: 网络整理| 查看: 265

目录 1、案例要求2、实现思路3、完整代码4、总结

1、案例要求

1)定义一个类Rational,分子与分母作为类参数; 2)重写toString方法; 3)前提条件检查(分母是否为0检查); 4)定义add方法实现两个有理数相加; 5)为 Rational 定义一个辅助构造函数,当分母为1时调用该辅助构造函数; 6)定义一个求分子分母最大公约数的方法,用于有理数的简化。

2、实现思路

1)定义一个类Rational,分子与分母作为类参数;

//有理数类 class Rational(n: Int, d: Int) {}

2)重写toString方法;

//重写打印函数 override def toString: String = { if (denominator != 1) numerator + "/" + denominator else numerator+"" }

3)前提条件检查(分母是否为0检查);

//分母要求不能为0 require(d != 0)

4)定义add方法实现两个有理数相加;

//实现分数加法函数 def add(that: Rational): Rational = { new Rational(numerator * that.denominator + denominator * that.numerator, denominator * that.denominator) }

5)为 Rational 定义一个辅助构造函数,当分母为1时调用该辅助构造函数;

//辅助构造函数:若只传入一个参数,则构建n/1 def this(n:Int) = this(n, 1)

6)定义一个求分子分母最大公约数的方法,用于有理数的简化。

//求最大公约数 private val g = gcd(n.abs, d.abs) //求最大公约数函数 private def gcd(a: Int, b : Int) : Int = if (b == 0) a else gcd(b, a % b) //化简后的分子 def numerator: Int = n/g //化简后的分母 def denominator: Int = d/g 3、完整代码 object demo1 { //有理数类 class Rational(n: Int, d: Int) { //分母要求不能为0 require(d != 0) //辅助构造函数:若只传入一个参数,则构建n/1 def this(n:Int) = this(n, 1) //化简后的分子 def numerator: Int = n/g //化简后的分母 def denominator: Int = d/g //重写打印函数 override def toString: String = { if (denominator != 1) numerator + "/" + denominator else numerator+"" } //实现分数加法函数 def add(that: Rational): Rational = { new Rational(numerator * that.denominator + denominator * that.numerator, denominator * that.denominator) } //求最大公约数 private val g = gcd(n.abs, d.abs) //求最大公约数函数 private def gcd(a: Int, b : Int) : Int = if (b == 0) a else gcd(b, a % b) } //主函数 def main(args: Array[String]): Unit = { //测试 var r = new Rational(1, 2) var r1 = new Rational(3, 6) println(r.add(r1)) var r2 = new Rational(3, 6) println(r2) } } 4、总结

scala编程总体上还是与java十分相似,但代码风格更加简洁高效,大家如果有余力的话,可以尝试实现该有理数类的减法、乘法、除法等运算!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3