[ 학습목표 ]
- 생성자 오버로딩의 개념 이해
- 다양한 매개변수를 받는 생성자의 정의 및 활용
- 생성자 오버로딩을 통해 유연한 객체 생성 능력 기르기
[ 이론 ]
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()를 사용시 다른 생성자를 호출할 수 있는 부분을 새로 알게 되었다.
'공부 기록 > Java with ChatGPT' 카테고리의 다른 글
[Java/ChatGPT] Day 9: 메서드 오버라이딩(Method Overriding)과 super 키워드 (0) | 2025.06.19 |
---|---|
[Java/ChatGPT] Day 8: 상속(Inheritance)의 개념과 기본 사용법 (0) | 2025.06.17 |
[Java/ChatGPT] Day 6: static 키워드와 클래스 변수/메서드 이해하기 (0) | 2025.06.15 |
[Java/ChatGPT] Day 5: 클래스의 캡슐화 개념과 Getter/Setter 메서드 (0) | 2025.06.14 |
[Java/ChatGPT] Day 4: 컬렉션(Collection)과 ArrayList 완전 정복 (0) | 2025.06.09 |