まとめ - 銀行口座マネージャー
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 22/110。
チャレンジ
簡単この章で学んだすべてのクラスプロパティの概念を統合した、銀行口座管理システムを構築しましょう。個々の口座データを追跡しながら、銀行全体の統計も維持するシステムを作成します。
コードを2つのファイルに整理します:
bank_account.dart: 個々の口座を管理し、銀行全体の統計を追跡するBankAccountクラスを定義します。クラスには以下を含める必要があります:- 作成後に変更できない
final String accountNumber - 口座名義人のための
String holderName 0.0で始まるプライベートなdouble _balanceフィールド- 存在する口座数を追跡するための、
0で始まるstatic int totalAccounts - 銀行全体で行われたすべての預金額を追跡するための、
0.0で始まるstatic double totalDeposits accountNumberとholderNameを受け取り、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()を使用して銀行の統計情報を出力する
}
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ