第五週課堂實踐之改進

PP7.4的編程過程:

分析思路

  • 修改 RationalNumber 類,使其實現 Comparable 接口。爲了實現比較,首先計算兩個 RationalNumber 對象(分子和分母)的浮點數等價值,而後0.0001爲偏差精度進行比較。編寫一個 main 驅動方法,測試你的修改結果。html

  • 本題重點是實現 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");

結果截圖




所遇問題

  1. 作此做業時未認真學習if語句,不瞭解「是否相等」須要使用==而使用了=,編譯屢次錯誤。
  2. 本章中無接口實例,初次編程時沒有頭緒,網上查找事後沒能發現須要加上implements Comparable,後來老師講到了,修改後沒有上傳碼雲。

參考資料

相關文章
相關標籤/搜索