Java 문제, Book 생성자 작성

다음 코드를 동작하게 클래스 생성자를 작성한다.

Book.java

public class Book {
    String title;
    String author;
    int page;

    // TODO Please Check Poin
}

Main.java

public class Main {
    public static void main(String[] args) {
        Book book1 = new Book();
        book1.displayInfo();

        Book book2 = new Book("Hello Java", "Oracle");
        book2.displayInfo();

        Book book3 = new Book("Hello Kotlin", "Google", 700);
        book3.displayInfo();
    }
}

출력결과

제목: , 저자: , 페이지: 0
제목: Hello Java, 저자: Oracle, 페이지:0
제목: Hello Kotlin, 저자: Google, 페이지:700

출력에 맞게 Book.class 코드를 완성하도록 한다.


Book 풀이

public class Book {
    String title;
    String author;
    int page;

    Book() {
        this.title = "";
        this.author = "";
        this.page = 0;
    }

    Book(String title, String author) {
        this.title = title;
        this.author = author;
        this.page = 0;
    }

    Book(String title, String author, int page) {
        this.title = title;
        this.author = author;
        this.page = page;
    }

    public void displayInfo() {
        System.out.println("제목: " + title + ", 저자: " + author + "페이지: " + page);
    }
}

출력결과

제목: , 저자: 페이지: 0
제목: Hello Java, 저자: Oracle페이지: 0
제목: Hello Kotlin, 저자: Google페이지: 700

클래스의 생성자 중복 코드 제거하기

this 를 적극 활용해 생성자 중복 코드를 제거한다.

public class Book {
    String title;
    String author;
    int page;

    Book() {
        this("", "", 0);
    }

    Book(String title, String author) {
        this(title, author, 0);
    }

    Book(String title, String author, int page) {
        this.title = title;
        this.author = author;
        this.page = page;
    }

    public void displayInfo() {
        System.out.println("제목: " + title + ", 저자: " + author + "페이지: " + page);
    }
}