Redmi K30至尊紀念版獲推MIUI 12.0.12:修復WiFi斷網斷流問題
阿新 • • 發佈:2020-10-02
1.有理數類的程式碼
package rationalNumber; public class RationalNumber { private int integer = 0;// 整數 private int decimal = 0;// 小數 public int getInteger() { return integer; } public void setInteger(int integer) { this.integer = integer; } public int getDecimal() { return decimal; } public void setDecimal(int decimal) { this.decimal = decimal; } public void rational(String Num) { int i = 0; for (int j = 0; j < Num.length(); j++) { if (Num.charAt(j) == '.') { i = j; break; } } String x1 = "", x2 = ""; if (i != 0) {// 有小數部分 for (int j = 0; j < i; j++) { x1 = x1 + Num.charAt(j); } for (int j = i + 1; j < Num.length(); j++) { x2 = x2 + Num.charAt(j); } } else { x1 = Num; x2 = "0"; } this.integer = Integer.valueOf(x1); this.decimal = Integer.valueOf(x2); } public void add(String Num) {//加法 RationalNumber x = new RationalNumber(); x.rational(Num); String x1 = Integer.toString(this.integer) + "." + Integer.toString(this.decimal); String x2 = Integer.toString(x.integer) + "." + Integer.toString(x.decimal); System.out.println(Double.valueOf(x1) + Double.valueOf(x2)); } public void substract(String Num) {//減法 RationalNumber x = new RationalNumber(); x.rational(Num); String x1 = Integer.toString(this.integer) + "." + Integer.toString(this.decimal); String x2 = Integer.toString(x.integer) + "." + Integer.toString(x.decimal); System.out.println(Double.valueOf(x1) - Double.valueOf(x2)); } public void multiply(String Num) {//乘法 RationalNumber x = new RationalNumber(); x.rational(Num); String x1 = Integer.toString(this.integer) + "." + Integer.toString(this.decimal); String x2 = Integer.toString(x.integer) + "." + Integer.toString(x.decimal); System.out.println(Double.valueOf(x1) * Double.valueOf(x2)); } public void divide(String Num) {//除法 RationalNumber x = new RationalNumber(); x.rational(Num); String x1 = Integer.toString(this.integer) + "." + Integer.toString(this.decimal); String x2 = Integer.toString(x.integer) + "." + Integer.toString(x.decimal); System.out.println(Double.valueOf(x1) / Double.valueOf(x2)); } }
2.測試程式碼
public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String num1 = sc.nextLine(); String num2 = sc.nextLine(); RationalNumber a = new RationalNumber(); a.rational(num1); a.add(num2); a.substract(num2); a.multiply(num2); a.divide(num2); } }
執行結果
3.討論
-
嘗試描述怎麼與c語言的有理數程式碼相比較,為什麼你設計的類更加面向物件?
c語言是將功能以函式形式寫出,在類裡將功能以方法形式集中,更便於使用
-
別人如何複用你的程式碼?
匯入rationalNumber包可以使用RationalNumber類
-
別人的程式碼是否依賴你的有理數類的屬性?當你的有理數類的屬性修改時,是否會影響他人呼叫你有理數類的程式碼?
依賴;影響。
-
有理數類的public方法是否設定合適?為什麼有的方法設定為private?
合適;有的細節不必關心,呼叫者只要關注呼叫public踩油門的方法。