class InitTest {
int x; // 인스턴스 변수 (iv) - 자동 초기화
int y = x; // 인스턴스 변수 (iv)
void method1() {
int i; // 지역 변수 (lv) - 수동 초기화
int j = i; // 에러 - 지역 변수를 초기화하지 않고 사용
}
}
간단 초기화
class Car {
int door = 4; // 기본형 변수의 초기화
Engine e = new Engine(); // 참조형 변수의 초기화
}
초기화 블럭 -> 복잡한 초기화
생성자
Car(String color, String gearType, int door) { // 매개변수 있는 생성자
this.color = color;
this.gearType = gearType;
this.door = door;
}
class StaticBlockTest {
static int[] arr = new int[10]; // 명시적 초기화 -> 간단 초기화
static { // 클래스 초기화 블럭 -> 복잡 초기화, 배열 arr을 난수로 채운다.
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random()*10) + 1;
}
}
}
한 번