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()는 생성자 내부에서 사용되어 같은 클래스 내의 다른 생성자를 호출하는 데 사용된다. 코드 중복을 줄이고, 여러 생성자 간에 공통된 초기화 로직을 쉽게 공유할 수 있다.
'유튜브 스크립트 > JAVA' 카테고리의 다른 글
[JAVA | 영상스크립트 | 백문이 불여일타!!] 참조형 (0) | 2024.08.26 |
---|---|
[JAVA | 영상스크립트 | 백문이 불여일타!!] 클래스와 배열 (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메소드(입출력프로그램) (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메서드(리팩토링) (0) | 2024.08.26 |