Создание класса Book на Java

JavaBeginner
Практиковаться сейчас

Введение

Добро пожаловать в библиотеку JavaTown — самую продвинутую цифровую библиотеку в мире программирования! Ваша первая задача в качестве нового разработчика — помочь в создании системы цифрового каталога для огромной коллекции книг.

Ваша миссия заключается в доработке класса Book, который будет представлять каждую книгу в библиотечной системе. Этот класс будет хранить важную информацию о книге и предоставлять методы для взаимодействия с этими данными.

Готовы ли вы перевести библиотеку JavaTown в цифровую эпоху? Приступим к коду!

Доработка класса Book

В этом упражнении вы создадите фундаментальный строительный блок для системы управления библиотекой. Эта задача поможет вам закрепить концепции объектно-ориентированного программирования в Java, включая проектирование классов, реализацию методов и управление состоянием объекта. Выполнив это испытание, вы получите ценный опыт создания реальных приложений. Давайте погрузимся в мир виртуальных книг!

Задачи

  • Откройте предварительно созданный файл Book.java в директории ~/project.
  • Найдите комментарии TODO в коде.
  • Добавьте недостающий код для завершения класса Book в соответствии с требованиями.

Требования

  • Файл Book.java уже должен находиться в директории ~/project.
  • Доработайте конструктор для инициализации всех полей (title, author, publicationYear и isAvailable).
  • Реализуйте метод borrowBook():
    • Если книга доступна, установите isAvailable в значение false и верните true.
    • Если книга недоступна, верните false.
  • Реализуйте метод returnBook():
    • Установите isAvailable в значение true.
  • Реализуйте метод 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
✨ Проверить решение и практиковаться

Резюме

В этом испытании вы создали класс Book, который демонстрирует ключевые концепции объектно-ориентированного программирования на Java:

  1. Инкапсуляция: Класс Book объединяет данные (title, author, publicationYear, isAvailable) и поведение (borrowBook, returnBook, getFormattedBookDetails), относящиеся к книге.
  2. Конструктор: Вы реализовали конструктор для инициализации свойств книги при создании нового объекта.
  3. Методы: Вы создали методы, представляющие действия, которые могут происходить с книгой (выдача и возврат), а также метод для получения информации о книге.
  4. Управление состоянием: Свойство isAvailable и методы borrowBook и returnBook показывают, как объект может управлять своим внутренним состоянием.

Этот класс Book служит основой для системы управления библиотекой. В реальном приложении вы могли бы расширить его, создав класс Library для управления коллекцией объектов Book или добавив более сложные правила выдачи книг.

Помните, что объектно-ориентированное программирование — это моделирование концепций реального мира в коде. Продолжая изучение Java, ищите возможности представлять сущности как объекты, обладающие как данными, так и поведением.

Продолжайте практиковаться и экспериментировать. Попробуйте добавить в класс Book новые методы, например, для обновления названия или автора, или создайте класс Library, который сможет хранить и обрабатывать сразу несколько книг. Чем больше вы пишете код, тем увереннее вы будете чувствовать себя в Java и ООП.