Lab_2

来源:互联网 发布:淘宝面膜便宜的原因 编辑:程序博客网 时间:2024/06/08 04:44

Part1部分,即是考察用this来实现。

Part2部分:

Fraction sumOfTwo = f1.add(f2);              // Sum of f1 and f2.Fraction sumOfThree = f0.add(f1).add(f2);             // Sum of f0, f1, and f2.


Part3部分,changeNumerator的话,即加一个this来指定此Object即可。Debug fracs Method,即将numberOfFractions改成Static Variable即可(所有隶属于同一个Class的Object共享一个Variable,且该Variable只被初始化一次)。

Part4部分,即将pseudo code打出即可,实用的方法叫辗转相除法,用了recursive的思想。

最后,我还将toString Method略微修改,使得0/1 显示0,3/1 显示3。

public String toString() {    if (numerator == 0) {      return ("" + 0);    } else if (denominator == 1) {      return ("" + numerator);    }    else {      int thisGcd = gcd(numerator, denominator); // greatest common divisor      return (numerator / thisGcd + "/" + denominator / thisGcd);    }}

“”的作用是,告诉Java,我后边的0或numerator,我想让它变成一个String,而非原来的Int了。

不用“”这个trick外,还可以用Integer.toString静态Method来做。即:

return (Integer.toString(numerator));




原创粉丝点击