더북(TheBook)

2.3.7 인수 없는 생성자


많은 클래스에 인수 없는 생성자가 있다. 이런 생성자는 적절한 기본 값으로 상태를 설정한 객체를 생성한다. 예를 들어 다음은 Employee 클래스의 인수 없는 생성자다.

public Employee() {

    name = " ";

    salary = 0;

}


피고인에게 경제력이 없으면 국선 변호사를 배정하듯이 클래스에 생성자가 없으면 자동으로 아무 작업도 하지 않는 인수 없는 생성자를 받는다. 모든 인스턴스 변수는 명시적인 초기화 없이 기본 값(0이나 false 또는 null)으로 남는다. 따라서 모든 클래스에는 생성자가 적어도 하나는 있다.

Note ≣

클래스에 생성자가 이미 있으면 인수 없는 생성자를 자동으로 받지 않는다. 생성자가 있는데도 인수 없는 생성자가 필요하다면 직접 작성해야 한다.


Note ≣

지금까지 객체를 생성할 때 일어나는 일을 살펴보았다. C++로 대표되는 일부 프로그래밍 언어에서는 일반적으로 객체가 소멸될 때 해야 할 작업을 지정한다. 자바에는 가비지 컬렉터가 객체를 회수할 때 해당 객체를 ‘마무리하는’ 메커니즘이 있다. 하지만 마무리 과정이 예측할 수 없는 시간에 일어나므로 이 메커니즘을 사용하지 말아야 한다. 5장 예외, 단정, 로깅에서 살펴보겠지만 자바에는 파일 등 리소스를 닫는 메커니즘이 있다.

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