프로젝트 개요 및 UML 설계
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 87개 중 77번째.
챌린지
쉬움Library Management System 프로젝트를 시작하며, 다른 모든 기능이 의존하게 될 기반, 즉 핵심 엔터티 클래스를 구축해 보겠습니다. 이 첫 번째 과제에서는 시스템의 핵심 엔터티를 모델링하는 잘 구조화된 Book 및 User 클래스를 만드는 데 중점을 둡니다.
코드를 세 개의 파일로 구성합니다:
Book.java: 도서관의 도서를 나타내는Book클래스를 Create합니다. 각 도서에는isbn(String),title(String),author(String), 그리고isAvailable(boolean, 기본값은true)에 해당하는 Private 필드가 있어야 합니다. isbn, title, author를 accepts하는 Constructor를 포함합니다. 모든 필드에 적절한 Getter methods를 제공하고,isAvailable에 대한 Setter를 제공합니다. 형식이 지정된 문자열[isbn] title by author를 Returns하는getDetails()method를 추가합니다.User.java: 도서관 회원을 나타내는User클래스를 Create합니다. 각 User에는id(String)와name(String)에 해당하는 Private 필드가 있어야 합니다. 두 값을 모두 accepts하는 Constructor를 포함하고, 각 필드에 대한 Getter methods를 제공합니다.User[id]: name을 Returns하는toString()method를 추가합니다.Main.java: 클래스들을 함께 사용하여 올바르게 작동하는지 보여 줍니다. 네 개의 입력을 받습니다. 도서의 ISBN, title, author, 그리고 User의 ID와 name입니다.처음 세 입력으로
Book을 Create하고, 마지막 두 입력으로User를 Create합니다.getDetails()를 사용하여 도서의 details를 Print한 다음,Available: true또는Available: false형식으로 도서의 대여 가능 여부를 Print합니다. 마지막으로 해당 User의toString()method를 사용하여 User를 Print합니다.
다음 순서로 다섯 개의 입력을 받습니다: 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이러한 기초 클래스는 전체 Library Management System을 구성하는 building blocks 역할을 합니다. 다음 lesson에서는 borrowing 기능, search capabilities 등을 추가하여 이 클래스들을 확장해 보겠습니다!
직접 해보기
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: Print whether the book is available (format: "Available: true" or "Available: false")
// TODO: toString()을 사용하여 사용자 출력하기
}
}
객체 지향 프로그래밍의 모든 레슨
4상속
상속의 기초 (extends)super 키워드메서드 오버라이딩 (@Override)생성자 체이닝Object 클래스단일 및 다중 레벨 상속다중 클래스 상속이 불가능한 이유요약 - 직원 계층 구조직접 연습해 보세요: 온라인 Java 컴파일러