Java Book クラスの作成チャレンジ

JavaBeginner
オンラインで実践に進む

はじめに

プログラミング界で最も先進的なデジタルライブラリ、JavaTown 図書館へようこそ!新しく採用されたソフトウェア開発者としてのあなたの最初の任務は、図書館が所蔵する膨大なプログラミング書籍のデジタル目録システムの構築を支援することです。

あなたのミッションは、図書館システムの各書籍を表現するために使用される Book クラスを完成させることです。このクラスは、各書籍に関する重要な情報を保持し、それらの情報とやり取りするためのメソッドを提供します。

JavaTown 図書館をデジタル時代へと導く準備はできていますか?さあ、コーディングを始めましょう!

Book クラスを完成させる

この演習では、図書館管理システムの基本となる構成要素を作成します。このタスクを通じて、クラス設計、メソッドの実装、状態管理など、Java におけるオブジェクト指向プログラミング(OOP)の概念を練習します。このチャレンジを完了することで、実用的で現実的なアプリケーションを作成するための貴重な経験を得ることができます。それでは、仮想書籍の世界に飛び込んでみましょう!

タスク

  • ~/project ディレクトリにある、あらかじめ作成されたファイル Book.java を開きます。
  • コード内の TODO コメントを探します。
  • 要件に従って、不足しているコードを追加し Book クラスを完成させます。

要件

  • ~/project ディレクトリに Book.java ファイルが既に存在している必要があります。
  • コンストラクタを完成させ、すべてのフィールド(titleauthorpublicationYearisAvailable)を初期化してください。
  • borrowBook() メソッドを実装してください:
    • 書籍が貸出可能な場合(isAvailabletrue)、isAvailablefalse に設定し、true を返します。
    • 書籍が貸出中で利用できない場合は、false を返します。
  • returnBook() メソッドを実装してください:
    • isAvailabletrue に設定します。
  • getFormattedBookDetails() メソッドを実装してください:
    • 書籍のタイトル、著者、出版年を含む文字列を返します。
    • フォーマットは「Title by Author (Year)」としてください。

実行例

正しく完了すると、main メソッド内の以下のコードは:

Book book = new Book("Java Programming", "John Doe", 2023);
System.out.println(book.getFormattedBookDetails());
System.out.println("Is book available? " + book.isAvailable());
boolean borrowed = book.borrowBook();
System.out.println("Book borrowed successfully? " + borrowed);
System.out.println("Is book available now? " + book.isAvailable());
book.returnBook();
System.out.println("Is book available after return? " + book.isAvailable());

以下のような出力を生成するはずです:

cd ~/project
javac Book.java
java Book

出力例:

Java Programming by John Doe (2023)
Is book available? true
Book borrowed successfully? true
Is book available now? false
Is book available after return? true
✨ 解答を確認して練習

まとめ

このチャレンジでは、Java におけるオブジェクト指向プログラミングの主要な概念を実証する Book クラスを作成しました。

  1. カプセル化(Encapsulation): Book クラスは、書籍に関連するデータ(title, author, publicationYear, isAvailable)と振る舞い(borrowBook, returnBook, getFormattedBookDetails)を一つにまとめました。
  2. コンストラクタ(Constructor): 新しい Book オブジェクトが作成される際に、書籍のプロパティを初期化するコンストラクタを実装しました。
  3. メソッド(Methods): 書籍に対して行われるアクション(貸出や返却)を表すメソッドと、書籍の情報を取得するメソッドを作成しました。
  4. 状態管理(State Management): isAvailable プロパティと、borrowBook および returnBook メソッドを通じて、オブジェクトが自身の内部状態をどのように管理するかを学びました。

この Book クラスは、図書館管理システムの基礎となります。実際のアプリケーションでは、複数の Book オブジェクトを管理する Library クラスを作成したり、より高度な貸出ルールを追加したりして拡張していくことになります。

オブジェクト指向プログラミングとは、現実世界の概念をコードでモデリングすることです。Java プログラミングの学習を続ける中で、データと振る舞いの両方を持つ「オブジェクト」として物事を表現する機会を常に探してみてください。

練習と実験を積み重ねましょう。Book クラスにタイトルや著者を更新するメソッドを追加したり、複数の本を保存・管理できる Library クラスを作成したりしてみてください。コードを書けば書くほど、Java とオブジェクト指向の概念が身に付いていくはずです。