第五周课堂实践之改进

PP7.4的编程过程:

分析思路

  • 修改 RationalNumber 类,使其实现 Comparable 接口。为了实现比较,首先计算两个 RationalNumber 对象(分子和分母)的浮点数等价值,然后0.0001为误差精度进行比较。编写一个 main 驱动方法,测试你的修改结果。

  • 本题重点是实现 Comparable 接口,计算对象浮点值以万分之一为精度进行比较。

关键代码

  1. 首先,接口的方法名通常叫做 compareTo ,对象是 RationalNumber 对象:
public int compareTo(RationalNumber op2)
  1. 将 RationalNumber 对象转为等值的浮点值以便下一步的比较:
double nu1, de1, nu2, de2;
nu1 = numerator;
de1 = denominator;
nu2 = op2.getNumerator();
de2 = op2.getDenominator();
double sh1 = nu1 / de1;
double sh2 = nu2 / de2;
  1. 利用if语句进行关键的比较:
if (sh1 - sh2 >0.0001)
    return 1;
else if (sh2 - sh1 > 0.0001)
    return -1;
else
    return 0;
  1. 修改完成! 差点忘记了,添加implements Comparable声明一下:
public class RationalNumber implements Comparable
  1. 驱动类测试部分:
RationalNumber r8 = new RationalNumber(1, 1000000);
RationalNumber r9 = new RationalNumber(2, 1000000);

if (r8.compareTo(r9) == -1)
    System.out.println("r8 < r9");
else if (r8.compareTo(r9) == 1)
    System.out.println("r8 > r9");
else
    System.out.println("r8 = r9");

结果截图

1334032-20180411192945814-1125087577.png
1334032-20180411192956558-1152127122.png
1334032-20180411193020949-2047375156.png
1334032-20180411193229939-1125290883.png

所遇问题

  1. 做此作业时未认真学习if语句,不了解“是否相等”需要使用==而使用了=,编译多次错误。
  2. 本章中无接口实例,初次编程时没有头绪,网上查找过后没能发现需要加上implements Comparable,后来老师讲到了,修改后没有上传码云。

参考资料

转载于:https://www.cnblogs.com/zhaoqianchen/p/8797994.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值