Введение
Добро пожаловать в библиотеку 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:
- Инкапсуляция: Класс
Bookобъединяет данные (title, author, publicationYear, isAvailable) и поведение (borrowBook, returnBook, getFormattedBookDetails), относящиеся к книге. - Конструктор: Вы реализовали конструктор для инициализации свойств книги при создании нового объекта.
- Методы: Вы создали методы, представляющие действия, которые могут происходить с книгой (выдача и возврат), а также метод для получения информации о книге.
- Управление состоянием: Свойство
isAvailableи методыborrowBookиreturnBookпоказывают, как объект может управлять своим внутренним состоянием.
Этот класс Book служит основой для системы управления библиотекой. В реальном приложении вы могли бы расширить его, создав класс Library для управления коллекцией объектов Book или добавив более сложные правила выдачи книг.
Помните, что объектно-ориентированное программирование — это моделирование концепций реального мира в коде. Продолжая изучение Java, ищите возможности представлять сущности как объекты, обладающие как данными, так и поведением.
Продолжайте практиковаться и экспериментировать. Попробуйте добавить в класс Book новые методы, например, для обновления названия или автора, или создайте класс Library, который сможет хранить и обрабатывать сразу несколько книг. Чем больше вы пишете код, тем увереннее вы будете чувствовать себя в Java и ООП.



