1. 程式人生 > 資訊 >Redmi K30至尊紀念版獲推MIUI 12.0.12:修復WiFi斷網斷流問題

Redmi K30至尊紀念版獲推MIUI 12.0.12:修復WiFi斷網斷流問題

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.討論

  1. 嘗試描述怎麼與c語言的有理數程式碼相比較,為什麼你設計的類更加面向物件?

    c語言是將功能以函式形式寫出,在類裡將功能以方法形式集中,更便於使用

  2. 別人如何複用你的程式碼?

    匯入rationalNumber包可以使用RationalNumber類

  3. 別人的程式碼是否依賴你的有理數類的屬性?當你的有理數類的屬性修改時,是否會影響他人呼叫你有理數類的程式碼?

    依賴;影響。

  4. 有理數類的public方法是否設定合適?為什麼有的方法設定為private?

    合適;有的細節不必關心,呼叫者只要關注呼叫public踩油門的方法。