Menu
Coddy logo textTech

プロジェクトの概要とUML設計

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

challenge icon

チャレンジ

簡単

Library Management System プロジェクトを、他のすべての機能が依存する基盤、つまり中核となるエンティティクラスの構築から始めましょう。この最初のチャレンジでは、システムの中核エンティティをモデル化する、適切に構造化された Book クラスと User クラスを作成します。

コードを3つのファイルに分けて整理します。

  • Book.java: 図書館の本を表す Book クラスを作成します。各本には、isbn(String)、title(String)、author(String)、isAvailable(boolean、デフォルト値は true)の Private フィールドを持たせます。isbn、title、author を受け取る Constructor を含めます。すべてのフィールドに適切な Getter methods と、isAvailable の Setter を用意します。フォーマット済みの文字列 [isbn] title by author を返す getDetails() method を追加します。
  • User.java: 図書館の会員を表す User クラスを作成します。各ユーザーには、id(String)と name(String)の Private フィールドを持たせます。両方の値を受け取る Constructor を含め、それぞれのフィールドに Getter methods を用意します。User[id]: name を返す toString() method を追加します。
  • Main.java: クラスを組み合わせ、正しく動作することを確認します。4つの入力、つまり本の ISBN、title、author、続いてユーザーの ID と name を受け取ります。

    最初の3つの入力で Book を、最後の2つの入力で User を作成します。getDetails() を使用して本の詳細を出力し、続いて本が利用可能かどうかを Available: true または Available: false の形式で出力します。最後に、その toString() method を使用してユーザーを出力します。

入力は、ISBN(String)、title(String)、author(String)、ユーザー ID(String)、ユーザーの name(String)の順に5つ受け取ります。

たとえば、入力が 978-0-13-468599-1Effective JavaJoshua BlochU001Alice Smith の場合、出力は次のようになります。

[978-0-13-468599-1] Effective Java by Joshua Bloch
Available: true
User[U001]: Alice Smith

これらの基礎となるクラスは、Library Management System 全体の構築要素として機能します。今後のレッスンでは、貸し出し機能、検索機能などを追加して拡張していきます。

自分で試してみよう

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: Print whether the book is available (format: "Available: true" or "Available: false")
        
        // TODO: toString()を使ってユーザーを出力する
    }
}

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

自分で練習してみよう: Javaオンラインコンパイラ