티스토리 뷰

728x90
반응형

기본 생성자

 

기본 생성자는 단순하게 말해 매개변수가 없는 생성자를 뜻한다.

DefaultConst(){} // 예시) DefaultConst 클래스의 기본 생성자

사실 모든 클래스에는 하나 이상의 생성자가 반드시 존재해야 한다.

 

지금까지 생성자 없이도 클래스로부터 인스턴스를 만들 수 있었던 이유는

 

클래스 내에 생성자가 없는 경우 자바 컴파일러가 자동으로 기본 생성자를 추가해주기 때문이다.

 

따라서 

class DefaultExample {

    DefaultExample(){} // 기본 생성자
    
    System.out.println("기본 생성자");

}

이 클래스와

class DefaultExample {
    
    System.out.println("기본 생성자");

}

이 클래스는 동일하게 작동하게 된다.

 


 

매개변수가 있는 생성자

 

매개변수가 있는 생성자는 메서드의 경우와 마찬가지로 호출 시에 값을 받아 인스턴스를 초기화한다.

 

특히 고유한 특성을 가진 인스턴스를 계속해서 만들어야 할 경우, 코드의 양을 줄이는데 크게 도움이 된다.

public class ConstructorExample {
    public static void main(String[] args) {
        Car c = new Car("Model X", "빨간색");
        System.out.println("제 차는 " + c.getModelName() + "이고, 컬러는 " +  c.getColor() + "입니다.");
    }
}

class Car {
    private String modelName;
    private String color;

    public Car(String modelName, String color) {
        this.modelName = modelName;
        this.color = color;
    }

    public String getModelName() {
        return modelName;
    }

    public String getColor() {
        return color;
    }
}

//출력 결과
제 차는 Model X이고, 컬러는 빨간색입니다.

위 코드를 보면 Car 생성자에 두 개의 매개변수가 있음을 알 수 있으며,

 

이를 이용해 Car 객체를 만들 때 필드 값을 객체 생성과 동시에 설정해줄 수 있음도 알 수 있다.

 

객체를 생성하는 법도 매개변수가 없을 때와는 달라진 것을 볼 수 있는데,

Car c = new Car("Model X", "빨간색");

와 같이 매개변수의 개수와 타입에 맞춰서 인자를 입력해준 것을 확인할 수 있다.

 

생성자 내부의 this. 문법에 대해서는 다음 글에서 정리한다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함