더북(TheBook)

그런데 Car 객체에 생성자가 하나도 없을 때는 기본 생성자가 자동으로 만들어지지만, 생성자를 하나라도 정의하면 기본 생성자가 자동으로 만들어지지 않습니다. 이 코드에서는 정의한 생성자가 하나 있고, 따라서 기본 생성자가 만들어지지 않았기 때문에 방금 작성한 코드에서 컴파일 오류가 발생합니다.

The constructor Car() is undefined

 

그렇다면 기본 생성자를 아예 사용할 수 없을까요? 그건 아닙니다. 생성자도 여러 개 정의할 수 있습니다. 이렇게 기본 생성자로도 Car 객체를 만들고 싶다면 기본 생성자를 직접 정의해두면 됩니다.

 

작성한 코드처럼 디폴트로 아무 값도 받지 않는 생성자를 기본 생성자라고 합니다. 기본 생성자를 하나 만들어보겠습니다.

package javaStudy;
public class Car{
    // 형 + 필드명
    String name;
    int number;    

    public Car(String name) {
        this.name = name;
    }
    
    public Car() {
        
    }
}

 

기본 생성자를 정의하면 CarExam3.java 파일에 있던 에러가 사라집니다. 생성자도 이렇게 오버로딩이 가능합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.