생성자를 정의하는 부분에 ‘public 클래스명(매개변수 목록)’을 볼 수 있습니다. 메서드와는 무엇이 다른가요? 네, 리턴형을 갖고 있지 않습니다. 만약 메서드였다면 다음과 같이 정의했을 것입니다.
public class 클래스명{
자료형 필드명;
public 리턴형 메서드명(매개변수 목록) {
……
}
}
두 번째, 프로그래머가 생성자를 만들지 않으면 컴파일할 때 매개변수가 없는 생성자가 자동으로 만들어집니다. 매개변수가 없는 생성자를 기본 생성자라고 합니다. 프로그래머가 생성자를 하나라도 만들었다면 기본 생성자는 자동으로 만들어지지 않습니다.
이 두 번째 특징을 코드로 살펴보겠습니다.
package javaStudy;
public class CarExam2 {
public static void main(String[] args) {
Car c1 = new Car();
}
}
코드를 보면 Car 생성자를 호출하고 있습니다. 그런데 Car.java 파일에서 Car 객체를 살펴보면 어디에도 생성자를 만든 적이 없습니다. 이 경우 컴파일러가 기본 생성자를 만든 것입니다.