Menu
Coddy logo textTech

まとめ - 銀行口座マネージャー

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

challenge icon

チャレンジ

簡単

この章で学んだすべてのクラスプロパティの概念を統合した、銀行口座管理システムを構築しましょう。個々の口座データを追跡しながら、銀行全体の統計も維持するシステムを作成します。

コードを2つのファイルに整理します:

  • bank_account.dart: 個々の口座を管理し、銀行全体の統計を追跡する BankAccount クラスを定義します。クラスには以下を含める必要があります:
    • 作成後に変更できない final String accountNumber
    • 口座名義人のための String holderName
    • 0.0 で始まるプライベートな double _balance フィールド
    • 存在する口座数を追跡するための、0 で始まる static int totalAccounts
    • 銀行全体で行われたすべての預金額を追跡するための、0.0 で始まる static double totalDeposits
    • accountNumberholderName を受け取り、totalAccounts をインクリメントするコンストラクタ
    • 現在の残高を返すゲッター balance
    • 金額が正の場合のみ残高に追加し、成功時には totalDeposits にも追加する deposit(double amount) メソッド
    • 金額が正であり、かつ現在の残高を超えない場合のみ残高から差し引く withdraw(double amount) メソッド
    • 口座の詳細を表示する displayInfo() メソッド
    • 銀行全体の統計を含む文字列を返す静的メソッド getBankStats()
  • main.dart: 銀行口座クラスをインポートし、システムを実演します:
    • 口座番号 'ACC001'、名義 'Alice' の口座を作成します
    • 口座番号 'ACC002'、名義 'Bob' の口座を作成します
    • Aliceの口座に 500.0 を預け入れます
    • Bobの口座に 300.0 を預け入れます
    • Aliceの口座から 150.0 を引き出します
    • Bobの口座から 1000.0 を引き出そうとします(残高不足のため無視される必要があります)
    • Aliceの口座に -50.0 を預け入れようとします(負の金額のため無視される必要があります)
    • Aliceの口座、次にBobの口座で displayInfo() を呼び出します
    • BankAccount.getBankStats() を使用して銀行の統計を表示します

displayInfo() メソッドは以下の形式で出力する必要があります:

Account [accountNumber] | Holder: [holderName] | Balance: $[balance]

getBankStats() メソッドは以下を返す必要があります:

Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]

期待される出力:

Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0

自分で試してみよう

import 'bank_account.dart';

void main() {
  // TODO: 'Alice'のために口座番号'ACC001'でアカウントを作成する
  
  // TODO: 'Bob'のために口座番号'ACC002'でアカウントを作成する
  
  // TODO: Aliceのアカウントに500.0を入金する
  
  // TODO: Bobのアカウントに300.0を入金する
  
  // TODO: Aliceのアカウントから150.0を出金する
  
  // TODO: Bobのアカウントから1000.0を出金しようとする(無視されるはず)
  
  // TODO: Aliceのアカウントに-50.0を入金しようとする(無視されるはず)
  
  // TODO: AliceのアカウントでdisplayInfo()を呼び出す
  
  // TODO: BobのアカウントでdisplayInfo()を呼び出す
  
  // TODO: BankAccount.getBankStats()を使用して銀行の統計情報を出力する
}

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