멤버변수의 초기화
1) 명시적 초기화(explicit initialization) :변수를 선언과 동시에 초기화. 대입연산자 이용
ex.
Class Car {
int door = 4; //기본형 변수의 초기화
Engine e = new Engine(); //참조형 변수의 초기화
}
2) 초기화 블럭(initialization block) :복잡한 초기화 작업이 필요할 때
인스턴스 초기화 블럭 : {} / 인스턴스 변수의 복잡한 초기화 (잘안쓰임)
클래스 초기화 블럭 : static {} / 클래스 변수의 복잡한 초기화
3) 생성자 : iv초기화, 복잡한 초기화에 사용
** 자동 초기화 -> 명시적 초기화 -> 초기화 블럭, 생성자
클래스변수(cv) -> 인스턴스변수(iv) 초기화
4) 멤버변수의 초기화 시점
클래스 변수 : 클래스가 처음 로딩될 때 단 한번
인스턴스 변수 : 인스턴스가 생성될 때마다