Menu
Coddy logo textTech

まとめ:銀行口座管理

CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 14/87。

challenge icon

チャレンジ

簡単

カプセル化、アクセス修飾子、getter、setter、そして final キーワードについて学んだすべてを統合した、完全な BankAccount システムを構築しましょう。

コードを整理するために、2つのファイルを作成します:

  • BankAccount.java: 機密性の高い財務データを保護する、安全な銀行口座クラスを設計します:
    • 口座が作成された後は決して変更できない、不変(immutable)な口座番号
    • 0.0 から始まり、制御されたメソッドを通じてのみ変更可能なプライベートな残高
    • 取得はできるが直接変更はできないプライベートな所有者名
    • 口座番号と所有者名を受け取るコンストラクタ
    • 口座番号の getter
    • 所有者名の getter
    • 残高の getter
    • 金額が正の場合のみ残高に追加し、成功した場合は true、拒否された場合は false を返す deposit(double amount) メソッド
    • 金額が正であり、かつ十分な資金がある場合のみ残高から差し引き、成功した場合は true、拒否された場合は false を返す withdraw(double amount) メソッド
    • 次の形式を返す getAccountSummary() メソッド: "Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]" (残高は小数点以下2桁にフォーマットすること)
  • Main.java: BankAccount を作成し、一連の取引を実行します。口座番号、所有者名、預金額、1回目の引き出し額、2回目の引き出し額の5つの入力を受け取ります。次の4行を出力してください:
    • 預金の結果: Deposit: true または Deposit: false
    • 1回目の引き出しの結果: Withdraw 1: true または Withdraw 1: false
    • 2回目の引き出しの結果: Withdraw 2: true または Withdraw 2: false
    • 最終的な口座の概要

accountNumber (String)、ownerName (String)、depositAmount (double)、withdrawAmount1 (double)、withdrawAmount2 (double) の順に5つの入力を受け取ります。

残高を小数点以下2桁にフォーマットするには、String.format("%.2f", balance) を使用できます。

自分で試してみよう

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 入力を読み込む
        String accountNumber = scanner.nextLine();
        String ownerName = scanner.nextLine();
        double depositAmount = scanner.nextDouble();
        double withdrawAmount1 = scanner.nextDouble();
        double withdrawAmount2 = scanner.nextDouble();
        
        // TODO: accountNumber と ownerName を使用して BankAccount オブジェクトを作成する
        
        // TODO: 入金を実行し、結果を "Deposit: true" または "Deposit: false" として出力する
        
        // TODO: 1回目の出金を実行し、結果を "Withdraw 1: true" または "Withdraw 1: false" として出力する
        
        // TODO: 2回目の出金を実行し、結果を "Withdraw 2: true" または "Withdraw 2: false" として出力する
        
        // TODO: 口座の概要を出力する
    }
}

オブジェクト指向プログラミングのすべてのレッスン