008-002-004

複雑なオブジェクト操作: 銀行口座クラスで引数・戻り値・状態管理を統合したメソッド実行

上級

問題説明

この問題では: BankAccountクラスを実装し、balance(残高)、transactionCount(取引回数)、accountNumber(口座番号)などのフィールドを持つオブジェクトの状態を管理するプログラムを作成します。

解説: 複雑なオブジェクト操作

この問題では、複数の状態管理メソッド間の連携を学びました。

学習のポイント

  1. 複数フィールドの管理: 残高、取引回数、口座番号
  2. double型の計算: 小数点を含む金額計算
  3. メソッドチェーン: 一つの操作が他のメソッドに影響
  4. ビジネスロジック: 実際の銀行システムを模擬

コード例の解説

public double addInterest(double rate) {
    if (rate <= 0 || rate > 1) {
        System.out.println("Error: Invalid interest rate");
        return 0;
    }
    double interest = balance * rate;  // 利息計算
    balance += interest;  // 残高に追加
    transactionCount++;  // 取引回数カウント
    return interest;  // 利息額を返す
}

このメソッドは:

  • 入力検証(利率チェック)
  • 計算処理(利息算出)
  • 状態更新(残高・取引回数)
  • 結果返却(利息額)

すべてを一つのメソッドで実現しています。

ステータス判定の例

public String getAccountStatus() {
    if (balance >= 1000) {
        return "Premium";
    } else if (balance >= 500) {
        return "Standard";
    } else {
        return "Basic";
    }
}

学んだこと

オブジェクト指向プログラミングでは、一つのクラスが複数の状態を管理し、メソッドを通じてそれらを操作します。これにより、現実世界のシステムを効果的にモデル化できます。

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

入力:
期待される出力:
1155.0
入力:
期待される出力:
735.0
入力:
期待される出力:
Premium
入力:
期待される出力:
Standard
入力:
期待される出力:
100.0
入力:
期待される出力:
0.0
❌ テストに失敗したケースがあります
❌ エラー発生

あなたの解答

現在のモード: 自分のコード
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください

sc.close();
}
}
0 B / 5 MB

残り 8 回実行可能