본문 바로가기

유튜브 스크립트/JAVA

[JAVA | 영상스크립트 | 백문이 불여일타!!] 생성자

1. 문제 설명

메서드와 비교하여 생성자를 이해하기 위한 문제

 

2. 요구 사항

`BookMain코드가 작동하도록 Book클래스를 완성하세요.

특히 Book클래스의 생성자 코드에 중복이 없도록 주의하세요.

public class Book { 
	String title; //제목 
    String author; //저자 
    int page; //페이지 수

	//TODO 코드를 완성하세요.
}
 public class BookMain {
     public static void main(String[] args) {
		// 기본 생성자 사용
        Book book1 = new Book();
        book1.displayInfo();

		// title과 author만을 매개변수로 받는 생성자
		Book book2 = new Book("Hello Java", "Seo"); 
        book2.displayInfo();

		// 모든 필드를 매개변수로 받는 생성자
		Book book3 = new Book("JPA 프로그래밍", "kim", 700); 
        book3.displayInfo();
	} 
}

 

실행결과

제목: , 저자: , 페이지: 0

제목: Hello Java, 저자: Seo, 페이지: 0

제목: JPA 프로그래밍, 저자: kim, 페이지: 700

3. 문제 해결

package constructor;

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

    Book(){
        this("", "", 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;
    }

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

}

4. 스크립트

생성자를 완성하는 문제

Book클래스 생성

출력정보 완성

 

모든필드를 받는 생성자

 

생성자를 정의하면 자바가 기본생성자를 만들어주지 않는다

 

반환타입 없이 void로 displayInfo()메서드 생성

 

기본생성자를 초기화 해주지 않으면 기본값으로 int 는 0 String은 null이기 때문에 공백과 0으로 초기화

 

코드 중복을 줄이고 여러 생성자 간에 공통된 초기화 로직을 공유하기 위해 this()사용

this()는 생성자 내부에서 사용되어 같은 클래스 내의 다른 생성자를 호출하는 데 사용된다. 코드 중복을 줄이고, 여러 생성자 간에 공통된 초기화 로직을 쉽게 공유할 수 있다.