1. 생성자
- 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드
- 인스턴수 변수 초기화
- 또는, 인스턴스 생성시 실행되어야 할 작업을 위해서 사용
2. 생성자 사용방법
- 생성자의 이름은 클래스의 이름과 같아야한다.
- 생성자는 리턴값이 없다.
3. 기본 생성자
- 사실 모든 클래스에는 반드시 하나 이상의 생성자가 정의되어있어야한다.
- 하지만 클래스에 생성자를 정의하지 않고도 인스턴스를 사용할 수 있는데 기본 생성자 덕분
- 컴파일 할때 소스파일(*.java)의 클래스에 생성자가 하나도 정의되있지 않은 경우 컴파일러는 자동적으로 기본 생성자를 추가하여 컴파일한다.
4. 매개변수가 있는 생성자
- 생성자도 메서드 처럼 매개변수를 선언하여 호출 시 값을 넘겨받아서 인스턴스 초기화 작업으로 사용 가능하다.
- 그럴 경우 매개변수를 이용한 초기화는 매우 유용
5. 생성자에서 다른 생성자 호출하기 : this()
, this
- 같은 클래스의 맴버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출 가능
- 단 다음 두 조건을 만족해야한다
1) 생성자의 이름으로 클래스 이름 대신 this
사용
2) 한 생성자에서 다른 생성자를 호출할 때 반드시 첫줄에서만 호출 가능
- this
: 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다.
모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다.
- this()
, this
(매개변수) : 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다
class Car {
String color;
String gearType;
int door;
Car() {
this("white", "auto", 4); //Car(String color, String gearType, int door) 호출
}
Car(String color) {
this(color, "auto", 4);
}
Car(String color, String gearType, int door) {
this.color = color;
this.gearType = gearType;
this.door = door;
}
}