생성자 오버로딩 (overloading) : 매개 변수를 달리하는 생성자를 여러 개 선언하는 것
- 다양한 데이터들을 이용하여 객체를 초기화하려면 생성자도 다양화될 필요가 있다
- 제공 데이터가 없을 경우, 기본 생성자로 객체를 생성할 수 있어야 한다 (예를 들어 Car 객체)
- model, color 등의 데이터가 제공될 경우에도 Car 객체를 생성할 수 있어야 한다
- 매개 변수의 타입과 개수, 선언된 순서가 똑같을 경우 매개 변수의 이름만 바꾸는 것은 생성자 오버로딩이 아님
// 오버로딩의 올바른 예
public class Car {
Car() {}
Car(String model) {}
Car(String model, String color) {}
Car(String model, String color, int maxSpeed) {}
}
// 오버로딩의 잘못된 예
Car(String model, String color) {}
Car(String color, String model) {}
생성자가 오버로딩되어 있을 경우,
new 연산자로 생성자를 호출할 때 제공되는 매개값 타입과 수에 의해 호출될 생성자 결정
// 다양한 방법으로 생성한 Car 객체
Car car1 = new Car(); // 기본 생성자로 객체 생성
Car car2 = new Car("그랜저"); // Car(String model) 생성자로 객체 생성
Car car3 = new Car("그런저", "흰색"); // Car(String model, String color) 생성자로 객체 생성
Car car4 = new Car("그랜저", "흰색", 300); // Car(String model, String color, int maxSpeed)생성자로 객체 생성
this()
생성자 내에서 다른 생성자를 호출하는 코드로 반드시 생성자의 첫 줄에서만 허용된다.
매가값은 호출되는 생성자의 매개 변수에 맞게 제공해야 한다
https://school.programmers.co.kr/learn/courses/5/lessons/171
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
https://data-make.tistory.com/202
[JAVA] this()의 의미와 사용
#. this() > this 예약어 - 생성자나 메서드의 매개변수 이름이 객체 변수의 이름과 같은 경우 - 객체 변수 이름 앞에 this를 사용해서 구별 - 멤버 변수와 매개변수 이름을 구분하여 프로그램의 가독
data-make.tistory.com
'혼자 공부하는 자바 📖 > Chapter 06 클래스' 카테고리의 다른 글
Chapter 06-6(2) 패키지와 접근 제한자 (0) | 2022.12.05 |
---|---|
Chapter 06-6(1) 패키지와 접근 제한자 (0) | 2022.12.02 |