얼마전에 this 키워드에 대해서 작성했는데, 이번엔 this() 생성자다.
java의 클래스 생성자도 오버로딩을 할 수 있다.
즉 우리는 여러개의 변수를 지닌 생성자가 여기저기서 다른 변수를 받아오는 생성자를 만들 때 마다,
매번 코드를 작성해줘야할 필요가 없고, 그냥 오버로딩해서 할 수 있다는 소리다.
그 기능을 하는게 this() 생성자다.
생성자 내부의 코드 블록에 this()를 호출해서 다른 생성자를 호출해서 쓸 수 있다.
다만, this()를 호출한 생성자 내부에는 다른 코드가 존재해서는 안 된다는 점이다.
아래는 this() 생성자를 사용한 예시 코드다.
private final CarName carName;
private final Position position;
public Car(final String name) {
this(name, 0);
}
public Car(final String name, final int position){
this.carName = new CarName(name);
this.position = new Position(position);
}