생성자

생성자(constructor)

생성자는 인스턴스 생성 시 데이터 초기화를 수행하기 위한 초기화 전용 구문이다.

형태

public class 클래스명 {
    public 클래스명(){
        //초기화 코드
    }
}

특징

생성자의 특징은 다음과 같다.

  • 클래스와 동일한 이름을 가진다.

  • 메소드와 동일하게 매개변수를 가질 수 있다.

  • 메소드처럼 반환형을 작성할 수 없다.

  • 매개변수가 다르다면 중복하여 작성할 수 있다.(생성자 오버로딩이라 한다)

  • 생성자는 인스턴스 생성 시 단 1회만 실행되며, 인스턴스에 포함되지 않는다.

  • 기본적으로 클래스에는 내장되어있는 생성자가 한 개 있으며, 작성 시 사라진다.

기본 생성자

아무 작업도 하지 않는 생성자를 기본 생성자(default constructor)라고 하며, 사용자가 만들지 않아도 클래스에 생성자가 없는 경우 생성된다.

생성자 오버로딩

생성자를 필요에 의해 여러 개 만드는 것을 생성자 오버로딩(Constructor Overloading)이라고 하며, 다음 조건을 만족할 경우 생성자를 여러 개 만들 수 있다.

  • 매개변수의 개수가 다른 경우

  • 매개변수의 자료형이 다른 경우

  • 매개변수의 순서가 다른 경우

이를 통하여 다양한 객체 생성 방식을 제공할 수 있다.

생성자간 호출

생성자가 많아지다 보면 중복 코드가 많이 발생하게 되는데, 이 때 생성자 간에 데이터를 전달하여 중복 코드를 없엘 수 있다.

중복이 발생하는 경우

생성자의 초기화문이 계속 중복되기 때문에 이를 하나의 생성자에 전달하여 처리하도록 할 수 있다. 수정하면 다음과 같다.

어떤 생성자에 전달할 것인가가 문제가 되는데, 정답은 없지만 모든 데이터를 처리할 수 있는 생성자 방향으로 전달하는 것이 처리하기가 수월하다.

Last updated