자바의 정석 강의를 기반으로 작성했습니다.
- 변수의 초기화
* 지역 변수는 반드시 수동 초기화 해야한다.
* 멤버 변수 (IV, CV)는 자동초기화 된다.
public class InitTest {
int x;
int y = x; // 인스턴스 변수
void method1() {
int i;
int j = i; // error 발생 , 지역 변수는 반드시 초기화를 해줘야 한다.
}
}
- 멤버 변수의 초기화
- 클래스 변수의 초기화 시점은 클래스가 처음 로딩될 때 단 한번
- 인스턴스 변수의 초기화 시점은 객체가 생성될 때마다 초기화
- CV 먼저 이후 IV 초기화
- 자동 -> 간단 -> 복잡 순서로 초기화
1. 명시적 초기화 (=)
class Car {
int door = 4; // 기본형(primitive type) 초기화
Engine e = new Engine(); // 참조형(reference type) 초기화, 객체를 넣어주는 것이 초기화
}
2. 초기화 블록 : 복잡한 초기화에 사용하며, 여러 문장 삽입
* 인스턴스 초기화 블록 : { }
* 클래스 초기화 블록 : static { }
class StaticBlockTest {
static int[] arr = new int[10]; // 클래스 변수의 명시적 초기화
static { // 클래스 초기화 블럭 - 배열을 난수로 채운다.
for(int i=0; i<arr.length; i++){
arr[i] = (int)(Math.random()*10)+1;
}
}
3. 생성자 : IV 초기화, 복잡한 초기화
class Car(String color, String gearType, Int door) {
this.color = color;
this.gearType = gearType;
this.door = door;
}
CV와 IV 초기화 하는 세 가지 방법
자동초기화 | 0 |
간단초기화 | = |
복잡초기화 | { }, static { }-CV, 생성자-IV |
'Programming > Java' 카테고리의 다른 글
[JAVA STUDY] 5주차 : 클래스(Class) (0) | 2021.10.29 |
---|---|
[JAVA STUDY] 4주차 : 제어문 (0) | 2021.10.27 |
[JAVA] 생성자 this(), 참조변수 this (0) | 2021.10.11 |
[JAVA] 생성자(constructor), 자바 생성자 (0) | 2021.10.11 |
[JAVA] 오버로딩(Overloading) (0) | 2021.10.11 |