歐洲央行已申請“數字歐元”商標
阿新 • • 發佈:2020-10-02
一.有理數類程式碼
package cx; public class Rational{ private int numerator;//分子 private int denominator;//分母 public int getNumerator()//獲取分子 { return this.numerator; } public int getDenominator()//獲取分母 { return this.denominator; } public Rational (int numerator,int denominator)//建構函式 { this.numerator = numerator; this.denominator = denominator; } public Rational add(Rational first,Rational second)//加法 { int n = first.numerator * second.denominator + second.numerator * first.denominator; int d = first.denominator * second.denominator; return new Rational(n,d); } public Rational subtract(Rational first,Rational second)//減法 { int n = first.numerator * second.denominator - second.numerator * first.denominator; int d = first.denominator * second.denominator; return new Rational(n,d); } public Rational multiply(Rational first,Rational second)//乘法 { int n = first.numerator * second.numerator; int d = first.denominator * second.denominator; return new Rational(n,d); } public Rational divide(Rational first,Rational second)//除法 { int n = first.numerator * second.denominator; int d = first.denominator * second.numerator; return new Rational(n,d); } public boolean equal(Rational first,Rational second) { if ((first.numerator == second.numerator)&(first.denominator == second.denominator)) { return true; } else { return false; } } public int intValue()//返回整數 { return this.numerator / this.denominator; } public double doubleValue()//返回浮點數 { return 1.0 * this.numerator / this.denominator; } public String toString()//返回字串 { return this.numerator + "/" + this.denominator; } }
二.程式碼測試
package cx; import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); Rational R; Rational a = new Rational(1, 2); Rational b = new Rational(3, 4); R= a.add(a, b); System.out.println("有理數加法的值是:"+R); R=a.subtract(a, b); System.out.println("有理數減法的值是:"+R); R=a.multiply(a, b); System.out.println("有理數乘法的值是:"+R); R=a.divide(a, b); System.out.println("有理數除法的值是: "+R); System.out.println(a.equal(a,b));//判斷兩分數是否相等 System.out.println(a.intValue());//返回整數 System.out.println(a.doubleValue());//返回浮點數 System.out.println(a.toString());//返回字串 }
執行結果
三.嘗試描述怎麼與c語言的有理數程式碼相比較,為什麼你設計的類更加面向物件?
c語言面向過程,面向過程設計的函式是來思考他能用來幹什麼的;java面向物件,大部分是可以直接呼叫的,在同一個包裡的另一個class裡直接用就可以了。
四.別人如何複用我的程式碼
只要匯入自己編寫的有理數類的包,就可以複用我的程式碼了
五.別人的程式碼是否依賴你的有理數類的屬性?當你的有理數類的屬性修改時,是否會影響他人呼叫你有理數類的程式碼?
會依賴我的有理數類的屬性;不會影響,因為我的有理數類的屬性為private型。
六.有理數類的public方法是否設定合適?為什麼有的方法設定為private?
合適,public成員可以被任何類訪問,private成員限於自己訪問。當方法設定為private型時,別的類就不能訪問改成員變數,只能通過public方法來訪問