BookクラスとUserクラス
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 102/110。
チャレンジ
簡単前回のレッスンでは、基本的なプロパティと toString() メソッドを持つ Book クラスを作成しました。次は、本を借りることができるライブラリメンバーを表す User クラスを追加して、ライブラリシステムを拡張しましょう。
新しいファイルを作成し、既存のファイルを更新する必要があります:
book.dart: 既存のBookクラスを拡張し、デフォルト値がtrueのisAvailableプロパティ(boolean)を追加します。これにより、本が貸出可能かどうかを追跡します。user.dart: ライブラリメンバーを表す新しいUserクラスを作成します。各ユーザーはid(String)、name(String)、およびBookオブジェクトを保持するborrowedBooksリストを持つ必要があります。id と name を初期化し、借りた本のリストを空のリストで初期化するコンストラクタを含めてください。toString()をオーバーライドして、User [id]: name (X books borrowed)という形式を返すようにします。ここで X は借りている本の数です。main.dart: book と user の両方のファイルをインポートします。ISBN'978-0-13-468599-1'、タイトル'The Pragmatic Programmer'、著者'David Thomas'で本を作成します。id'U001'、名前'Alice Johnson'でユーザーを作成します。本をプリントし、次にAvailable: trueまたはAvailable: falseという形式で利用可能かどうかをプリントします。ユーザーをプリントします。その後、その本をユーザーの借りた本のリストに追加し、本のisAvailableをfalseに設定し、更新された本の数を表示するためにもう一度ユーザーをプリントします。
これにより、次のレッスンで完全な貸出システムを実装する際に基礎となる、本とユーザーの関係が構築されます!
期待される出力:
[978-0-13-468599-1] The Pragmatic Programmer by David Thomas
Available: true
User U001: Alice Johnson (0 books borrowed)
User U001: Alice Johnson (1 books borrowed)自分で試してみよう
import 'book.dart';
// TODO: user.dart をインポートする
void main() {
// TODO: ISBN '978-0-13-468599-1'、タイトル 'The Pragmatic Programmer'、著者 'David Thomas' の本を作成する
// TODO: ID 'U001'、名前 'Alice Johnson' のユーザーを作成する
// TODO: 本の情報を出力する
// TODO: 本が利用可能かどうかを「Available: true/false」の形式で出力する
// TODO: ユーザーの情報を出力する
// TODO: ユーザーの borrowedBooks リストに本を追加する
// TODO: 本の isAvailable を false に設定する
// TODO: 更新された本の数を確認するために、再度ユーザーの情報を出力する
}
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ