Menu
Coddy logo textTech

BookクラスとUserクラス

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

challenge icon

チャレンジ

簡単

前回のレッスンでは、基本的なプロパティと toString() メソッドを持つ Book クラスを作成しました。次は、本を借りることができるライブラリメンバーを表す User クラスを追加して、ライブラリシステムを拡張しましょう。

新しいファイルを作成し、既存のファイルを更新する必要があります:

  • book.dart: 既存の Book クラスを拡張し、デフォルト値が trueisAvailable プロパティ(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 という形式で利用可能かどうかをプリントします。ユーザーをプリントします。その後、その本をユーザーの借りた本のリストに追加し、本の isAvailablefalse に設定し、更新された本の数を表示するためにもう一度ユーザーをプリントします。

これにより、次のレッスンで完全な貸出システムを実装する際に基礎となる、本とユーザーの関係が構築されます!

期待される出力:

[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: 更新された本の数を確認するために、再度ユーザーの情報を出力する
}

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