생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'입니다. 즉, 인스턴스변수들을 초기화 하는 것을 의미한다.
메서드와 구조가 비슷하지만 리턴값이 없다는 점이 다르다.
모든 생성자는 리턴값이 없으므로 void를 사용하지 않고 그냥 생략하여 아무것도 적지 않는다.
1. 생성자의 이름은 클래스와 같아야 한다.
2. 생성자는 리턴값이 없다.
클래스이름(타입 변수명, 타입 변수명, ..) {
// 초기화코드
}
위와 같이 매개변수가 있는 생성자가 있고 매개변수가 없을 수도 있다.
위 클래스를 참조하면서 만드는 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다.
생성자를 모르고도 프로그래밍을 할 수 있다.
그 이유는 컴파일러가 제공하는 기본 생성자 때문이다.
컴파일시 아무런 생성자가 없다면 컴파일러는 아래와 같은 기본 생성자를 추가한다.
클래스이름( ) { } // 기본 생성자
때문에 우리는 기본 생성자를 이용하여
Pen p = new Pen( ); // class Pen을 참조하는 참조변수 p 선언
위와 같은 기본 참조변수를 만들 수 있던 것이다.
Pen() --> 기본생성자
하지만 만약 클래스 내에 생성자가 정의되어있다면 기본생성자가 자동으로 추가되지 않으므로 잘 확인하여야 한다.