プロジェクトの概要とUML設計
CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 77/87。
チャレンジ
簡単図書館管理システムプロジェクトの第一歩として、すべての基盤となるコアエンティティクラスを構築しましょう。この最初のチャレンジでは、レッスンで学んだUML設計に従って、適切に構造化された Book クラスと User クラスを作成することに焦点を当てます。
コードは3つのファイルに分けて構成します:
Book.java: 図書館の本を表すBookクラスを作成します。各本は、isbn(String)、title(String)、author(String)、およびisAvailable(boolean、デフォルトはtrue) のプライベートフィールドを持つ必要があります。isbn、title、authorを受け取るコンストラクタを含めてください。すべてのフィールドに対して適切なゲッターメソッドを提供し、isAvailableに対してはセッターを提供してください。さらに、[isbn] title by authorという形式の文字列を返すgetDetails()メソッドを追加してください。User.java: 図書館の利用者を代表するUserクラスを作成します。各ユーザーは、id(String) とname(String) のプライベートフィールドを持つ必要があります。両方の値を受け取るコンストラクタを含め、各フィールドのゲッターメソッドを提供してください。さらに、User[id]: nameを返すtoString()メソッドを追加してください。Main.java: 作成したクラスを組み合わせて、正しく動作することを確認します。4つの入力を受け取ります:本のISBN、タイトル、著者、そしてユーザーのIDと名前です。最初の3つの入力で
Bookを作成し、最後の2つの入力でUserを作成します。getDetails()を使用して本の詳細を出力し、次にAvailable: trueまたはAvailable: falseという形式で本が利用可能かどうかを出力します。最後に、toString()メソッドを使用してユーザーを出力します。
入力は、ISBN (String)、タイトル (String)、著者 (String)、ユーザーID (String)、ユーザー名 (String) の順に5つ受け取ります。
例えば、入力が 978-0-13-468599-1、Effective Java、Joshua Bloch、U001、Alice Smith の場合、出力は以下のようになります:
[978-0-13-468599-1] Effective Java by Joshua Bloch
Available: true
User[U001]: Alice Smithこれらの基礎となるクラスは、図書館管理システム全体の構成要素となります。今後のレッスンでは、これらに貸出機能や検索機能などを追加して拡張していきます!
自分で試してみよう
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 本の情報を読み込む
String isbn = scanner.nextLine();
String title = scanner.nextLine();
String author = scanner.nextLine();
// ユーザー情報を読み込む
String userId = scanner.nextLine();
String userName = scanner.nextLine();
// TODO: isbn、title、author を使用して Book オブジェクトを作成する
// TODO: userId と userName を使用して User オブジェクトを作成する
// TODO: getDetails() を使用して本の詳細を表示する
// TODO: 本が利用可能かどうかを表示する (形式: "Available: true" または "Available: false")
// TODO: toString() を使用してユーザーを表示する
}
}
オブジェクト指向プログラミングのすべてのレッスン
4継承
継承の基本 (extends)super キーワードメソッドのオーバーライド (@Override)コンストラクタチェーンObject クラス単一継承と多段階継承なぜ多重継承ができないのかまとめ:従業員の階層構造