생성자는 new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 일종의 메소드이다. 생성자는 (객체의 초기화)인스턴스 변수를 초기화 시키는 역할을 한다.
public 클래스(매개변수) {
......
}
클래스라는 부분은 생성자를 정의하는 클래스의 이름과 동일하게 적어줘야 한다. ‘public’과 ‘매개변수’ 부분은 필수로 적어야 하는 부분은 아니다.
인스턴스를 생성할 때 반드시 생성자를 호출한다고 했다.
그런데 생성자를 정의하지 않았는데 호출이 되는 이유는 무었일까?
바로 클래스를 정의할 때 생성자를 생략하면 컴파일러가 자동적으로 기본 생성자(Default Constructor)를 생성하여 주기 때문이다. 기본 생성자란 “public 클래스(){}”를 의미한다.
public class ConstructorEx01 {
// public ConstructorEx01(){} // 기본 생성자 자동 생성
public static void main(String[] args) {
ConstructorEx01 ce = new ConstructorEx01(); // 인스턴스 생성 및 생성자 호출
}
}
인스턴스를 생성할 때 생성자를 호출한다. 생성자를 생략하면 주석처리된 부분이 자동으로 생성된다.