Menu
Coddy logo textTech

프로젝트 개요 및 UML 설계

Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 77번째.

challenge icon

챌린지

쉬움

도서 관리 시스템 프로젝트의 기초를 다지기 위해, 다른 모든 기능의 기반이 될 핵심 엔티티 클래스를 구축해 보겠습니다. 이 첫 번째 챌린지는 레슨의 UML 설계를 따르는 잘 구조화된 BookUser 클래스를 만드는 데 중점을 둡니다.

코드는 다음 세 개의 파일로 구성됩니다:

  • Book.java: 도서관의 책을 나타내는 Book 클래스를 생성합니다. 각 책은 isbn (String), title (String), author (String), isAvailable (boolean, 기본값은 true)에 대한 private 필드를 가져야 합니다. isbn, title, author를 매개변수로 받는 생성자를 포함하세요. 모든 필드에 대해 적절한 getter 메서드를 제공하고, isAvailable에 대한 setter를 제공하세요. [isbn] title by author 형식의 문자열을 반환하는 getDetails() 메서드를 추가하세요.
  • User.java: 도서관 회원을 나타내는 User 클래스를 생성합니다. 각 사용자는 id (String)와 name (String)에 대한 private 필드를 가져야 합니다. 두 값을 모두 받는 생성자를 포함하고, 각 필드에 대한 getter 메서드를 제공하세요. User[id]: name 형식을 반환하는 toString() 메서드를 추가하세요.
  • Main.java: 클래스들이 올바르게 작동하는지 확인하기 위해 하나로 통합합니다. 책의 ISBN, 제목, 저자, 그리고 사용자의 ID와 이름을 순서대로 입력받습니다.

    처음 세 개의 입력으로 Book 객체를 생성하고, 마지막 두 개의 입력으로 User 객체를 생성하세요. getDetails()를 사용하여 책의 상세 정보를 출력한 다음, Available: true 또는 Available: false 형식으로 책의 대여 가능 여부를 출력하세요. 마지막으로 toString() 메서드를 사용하여 사용자 정보를 출력하세요.

입력은 ISBN (String), 제목 (String), 저자 (String), 사용자 ID (String), 사용자 이름 (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: isbn, title, author를 사용하여 Book 객체 생성
        
        // TODO: userId와 userName을 사용하여 User 객체 생성
        
        // TODO: getDetails()를 사용하여 도서의 상세 정보 출력
        
        // TODO: 도서의 대여 가능 여부 출력 (형식: "Available: true" 또는 "Available: false")
        
        // TODO: toString()을 사용하여 사용자 정보 출력
    }
}

객체 지향 프로그래밍의 모든 레슨