- 3日目のゴールと全体像
- 電卓アプリの全体構造を作る
- クラスとメソッド:HistoryCalculator の役割を整理する
- メソッド:計算処理を“意味ごとに分ける”
- コレクション:履歴を表示するメソッドを作る
- ファイル操作:履歴を保存するメソッドをアプリに組み込む
- 3日目で本当に掴んでほしいこと
- 4日目のゴールと全体像
- Java文法:入力チェックと例外処理で“落ちない電卓”にする
- クラスとメソッド:Calculator を“責務が明確な頭脳”にする
- メソッド:アプリ側で例外を受け止める
- コレクション:履歴の扱い方を“統一された窓口”にする
- ファイル操作:読み込み・保存を“エラーに強い”形にする
- 4日目で本当に掴んでほしいこと
- 5日目のゴールと全体像
- クラスとインターフェース:役割ごとに“契約”を定義する
- メソッドとサービスクラス:電卓の操作を“ひとつの窓口”にまとめる
- Java文法:例外と入力チェックを“サービスの外側”で扱う
- コレクション:履歴を“読み取り専用”として扱う
- ファイル操作:履歴保存を“差し替え可能な仕組み”として考える
- 5日目で本当に掴んでほしいこと
- 6日目のゴールと全体像
- 電卓アプリの全体構造をもう一度整理する
- Java文法とクラス:電卓の“頭脳”を読み解く
- メソッドとサービス:電卓の“窓口”を読み解く
- コレクション:履歴の“集まり”を読み解く
- ファイル操作:履歴の“記憶”を読み解く
- メソッドと入力:電卓の“使い方”を読み解く
- 6日目で本当に掴んでほしいこと
- 7日目のゴールと全体像
- 電卓アプリの完成版:全体の流れをひとつにつなぐ
- クラスとインターフェース:役割の“骨組み”をもう一度
- 計算ロジック:電卓の“頭脳”を完成させる
- 履歴とコレクション:電卓の“記録”を完成させる
- サービスクラス:電卓の“窓口”を完成させる
- 入力と例外:電卓の“使い方”を完成させる
- ファイル操作:電卓の“記憶”を完成させる
- メインアプリ:電卓の“顔”を完成させる
- 7日目で本当に掴んでほしいこと
3日目のゴールと全体像
3日目のテーマは 「電卓アプリを“アプリらしい形”に近づけること」 です。
1〜2日目で、すでに
- コンソールから入力して計算できる
Calculatorクラスで計算ロジックをまとめたList<CalculationHistory>で履歴をため始めた- 履歴をファイルに保存する入口を作った
という「動く電卓の最初の形」ができました。
3日目では、これを “使う人の視点から見て分かりやすいアプリ” に近づけていきます。
- メニューを作って「何ができるか」を明確にする
- クラスとメソッドの役割を整理する
- コレクション(履歴)を扱うメソッドを整える
- ファイル保存・読み込みをアプリの流れに組み込む
「コードを増やす」というより、 「電卓アプリの骨格を整える」 日だと思って読んでみてください。
電卓アプリの全体構造を作る
メニュー付きコンソールアプリの骨格
まず、「電卓アプリの全体の流れ」を作ります。 ユーザーが何度も計算できて、履歴も見られて、最後に終了できるような形です。
import java.util.List;
import java.util.Scanner;
public class CalculatorApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 履歴付き電卓のインスタンス
HistoryCalculator calculator = new HistoryCalculator();
// 起動時に履歴ファイルから読み込む(3日目では仮の形でもOK)
HistoryFileLoader.load(calculator, "history.txt");
boolean running = true;
while (running) { // アプリが終了されるまで繰り返す
showMenu(); // メニューを表示
System.out.print("メニュー番号を選択してください: ");
String choice = scanner.next(); // ユーザーの選択を文字列として受け取る
switch (choice) {
case "1":
runCalculation(scanner, calculator); // 計算する
break;
case "2":
showHistory(calculator); // 履歴を見る
break;
case "3":
saveHistoryToFile(calculator); // 履歴をファイルに保存する
break;
case "4":
running = false; // 終了
break;
default:
System.out.println("不正な入力です。1〜4の番号を入力してください。");
break;
}
System.out.println(); // 区切りの空行
}
scanner.close();
System.out.println("電卓アプリを終了します。");
}
// メニューを表示するメソッド
private static void showMenu() {
System.out.println("=== 電卓メニュー ===");
System.out.println("1: 計算する");
System.out.println("2: 履歴を見る");
System.out.println("3: 履歴をファイルに保存する");
System.out.println("4: 終了する");
}
}
Javaここで深掘りしたいのは、 「メニューはアプリ全体の“司令塔”」 だということです。
- 何ができるかが一目で分かる
- ユーザーの選択に応じて処理が分岐する
- 新しい機能を追加するときも、メニューに項目を足せばよい
電卓アプリが「ただのコード」から “使う人のためのアプリ” に近づいていきます。


