復習:簡易電卓
CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 9/87。
チャレンジ
難しいこれまでに学んだすべての概念を使用して、完全な Calculator クラスを構築してください:
- フィールド:
name(String)、memory(double)、operationCount(int) のプライベートフィールド - コンストラクタ: 引数付きコンストラクタと、
this()チェーンを使用したデフォルトコンストラクタ - this キーワード:
thisを使用してフィールドに値を代入し、メソッド内でそれらにアクセスする - ゲッター:
getName()、getMemory()、getOperationCount() - メソッド:
add、subtract、multiply、divide、power
add メソッドは結果を memory に保存します。すべてのメソッドは operationCount をインクリメントします。divide メソッドは、0で割る場合に 0 を返します。power メソッドは Math.pow() を使用します。
自分で試してみよう
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double num1 = Double.parseDouble(scanner.nextLine());
double num2 = Double.parseDouble(scanner.nextLine());
Calculator calc = new Calculator(name);
System.out.println("Calculator: " + calc.getName());
System.out.println("Memory: " + calc.getMemory());
System.out.println("Add: " + calc.add(num1, num2));
System.out.println("Subtract: " + calc.subtract(num1, num2));
System.out.println("Multiply: " + calc.multiply(num1, num2));
System.out.println("Divide: " + calc.divide(num1, num2));
System.out.println("Divide by zero: " + calc.divide(num1, 0));
System.out.println("Memory: " + calc.getMemory());
System.out.println("Power: " + calc.power(num1, num2));
System.out.println("Operations: " + calc.getOperationCount());
}
}オブジェクト指向プログラミングのすべてのレッスン
4継承
継承の基本 (extends)super キーワードメソッドのオーバーライド (@Override)コンストラクタチェーンObject クラス単一継承と多段階継承なぜ多重継承ができないのかまとめ:従業員の階層構造