[ 학습목표 ]
생성자 오버로딩의 개념 이해
다양한 매개변수를 받는 생성자의 정의 및 활용
생성자 오버로딩을 통해 유연한 객체 생성 능력 기르기
[ 이론 ]
1. 생성자란?
객체가 생성될 때 자동으로 호출되는 메서드
클래스 이름과 같고 return 타입이 없음
2. 생성자 오버로딩이란?
하나의 클래스에 매개변수가 다른 여러 생성자를 정의하는 것
3. 생성자 오버로딩 규칙
매개변수의 개수 또는 타입이 달라야 함
Java는 인자에 따라 적절한 생성자 자동 호출
4. 생성자 오버로딩 예시
public class Book {
String title;
String author;
// 생성자 1
Book() {
this.title = "제목 없음";
this.author = "저자 없음";
}
// 생성자 2
Book(String title) {
this.title = title;
this.author = "저자 없음";
}
// 생성자 3
Book(String title, String author) {
this.title = title;
this.author = author;
}
void printInfo() {
System.out.println("제목: " + title + ", 저자: " + author);
}
}
5. 추가 팁
this()를 사용하면 다른 생성자를 호출할 수 있음 -> 코드 중복 줄이기 가능
[ 실습 ]
✅ 실습 1: 다양한 방식으로 Book 객체 생성하기
public class Main {
public static void main(String[] args) {
Book b1 = new Book();
Book b2 = new Book("해리포터");
Book b3 = new Book("1984", "조지 오웰");
b1.printInfo(); // 제목 없음, 저자 없음
b2.printInfo(); // 해리포터, 저자 없음
b3.printInfo(); // 1984, 조지 오웰
}
}
[ 메모 ]
this()를 사용시 다른 생성자를 호출할 수 있는 부분을 새로 알게 되었다.