Menu
Coddy logo textTech

Обзор проекта и UML-проектирование

Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 77 из 87.

challenge icon

Задание

Легко

Давайте начнем проект системы управления библиотекой с создания фундамента — основных классов сущностей, от которых будет зависеть все остальное. Эта первая задача сосредоточена на создании хорошо структурированных классов Book и User, которые следуют UML-дизайну из урока.

Вы организуете свой код в трех файлах:

  • Book.java: Создайте класс Book, который представляет библиотечную книгу. Каждая книга должна иметь приватные поля для isbn (String), title (String), author (String) и isAvailable (boolean, по умолчанию true). Включите конструктор, который принимает isbn, title и author. Предоставьте соответствующие геттеры для всех полей и сеттер для isAvailable. Добавьте метод getDetails(), который возвращает отформатированную строку: [isbn] title by author.
  • User.java: Создайте класс User, представляющий члена библиотеки. Каждый пользователь должен иметь приватные поля для id (String) и name (String). Включите конструктор, который принимает оба значения, и предоставьте геттеры для каждого поля. Добавьте метод toString(), который возвращает: User[id]: name.
  • Main.java: Объедините ваши классы, чтобы продемонстрировать их правильную работу. Вы получите четыре входных данных: ISBN книги, название, автора, а затем ID и имя пользователя.

    Создайте объект Book с первыми тремя входными данными и объект User с последними двумя. Выведите детали книги, используя getDetails(), затем выведите, доступна ли книга, в формате Available: true или Available: false. Наконец, выведите пользователя, используя его метод toString().

Вы получите пять входных данных по порядку: ISBN (String), title (String), author (String), user ID (String) и user name (String).

Например, при входных данных 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: Создайте объект Book с isbn, title и author
        
        // TODO: Создайте объект User с userId и userName
        
        // TODO: Выведите детали книги, используя getDetails()
        
        // TODO: Выведите, доступна ли книга (формат: "Available: true" или "Available: false")
        
        // TODO: Выведите пользователя, используя toString()
    }
}

Все уроки раздела Объектно-ориентированное программирование