인스턴스 변수를 선언할 때 초기화하는 방법 외에 클래스 선언 안에 임의의 초기화 블록(initialization block)을 넣는 방법도 있다.
public class Employee() {
private String name = " ";
private int id;
private double salary;
{ // 초기화 블록
Random generator = new Random();
id = 1 + generator.nextInt(1_000_000);
}
public Employee(String name, double salary) {
...
}
}
Note ≣
초기화 블록은 자주 사용하는 기능은 아니다. 대부분의 개발자는 긴 초기화 코드를 헬퍼 메서드 안에 두고, 생성자에서 헬퍼 메서드를 호출한다.
인스턴스 변수 초기화와 초기화 블록은 클래스 선언에 나타난 순서로 실행하며, 그다음에 생성자를 실행한다.