요구 사항
- ⬜ 도서 1권의 정보를 출력할 수 있어야 한다.
- ⬜ 도서 정보는 제목, 저자, 출판 연도이다.
문제 풀이
Main
더보기
package lv_1;
public class Main {
public static void main(String[] args) {
Book book = new Book("어린왕자", "앙투안 드 생텍쥐페리", 1943);
System.out.println(book);
}
}
- 생성자를 통해 책의 정보를 넘겨주면서 Book 객체 생성
- book 정보를 출력 (객체를 print로 출력해도 값이 정상 출력되는 이유는 아래에서 설명)
Book
더보기
package lv_1;
public class Book {
private String title;
private String author;
private int publishYear;
public Book(String title, String author, int publishYear) {
this.title = title;
this.author = author;
this.publishYear = publishYear;
}
@Override
public String toString() {
return "제목 : " + title +
" | 저자 : " + author+
" | 출판 연도 : " + publishYear;
}
}
- Object 메서드인 toString()을 오버라이딩하여, 책의 정보를 출력하도록 재정의하였다.
- 요구사항에는 없지만, 추후에 Getter, Setter 추가를 염두하여 속성 값에 final을 붙이지 않았다.
객체의 역할과 책임
Main | Book |
Book 객체 생성 | Book 역할 |
실행 흐름
GPT 분석
- 현재 toString()이 직접 출력용 포맷을 담당하는데, 출력 방식이 바뀔 경우 클래스 자체를 수정해야 합니다.
- 나중에 콘솔 대신 웹 UI, JSON 출력 등으로 바뀔 수 있기 때문에 책의 핵심 데이터는 toString이 아닌 별도의 formatter에서 처리하는 것도 방법입니다.
- 하지만 Lv1 단계에서는 충분히 acceptable 합니다. (단, 향후 확장을 염두에 두면 좋은 포인트)
'JAVA' 카테고리의 다른 글
[Java] Lv_3 도서관 프로젝트 (0) | 2025.05.02 |
---|---|
[Java] Lv_2 도서관 프로젝트 (0) | 2025.05.01 |
[Java] 도전 과제 Lv_2 키오스크 (0) | 2025.04.28 |
[Java] 제네릭(Generic), 왜 사용할까? (0) | 2025.04.28 |
[Java] 도전 과제 Lv_1 키오스크 (0) | 2025.04.26 |