변수의 초기화
- 지역변수lv는 사용 전에 꼭 수동 초기화를 해야 한다.
- 멤버변수 iv, cv는 자동 초기화 된다.
- InitTest it = new InitTest;
class InitTest{
int x; //인스턴스 변수
int y = x; //인스턴스 변수
void method1{
int i; //지역변수
int j = i; //에러, 지역변수를 초기화 하지 않고 사용했음
}
}
멤버 변수의 초기화
- 명시적 초기화 (=) 대입연산자 이용
class Car {
int door = 4; // 기본형 (primitive type) 변수의 초기화
Engine e = new Engine(); //참조형 (reference type) 초기화
- 초기화 블럭
- 복잡한 초기화할 때 사용한다. {} 블럭 이용
- 인스턴스 초기화 블럭 : {} ← iv 초기화할 때 사용
- 클래스 초기화 블럭 : static {} ← cv 초기화할 때 사용
- 생성자 iv 초기화
Car(String color, string gearType, int door) { //매개변수 있는 생성자
this.color = color;
this.gearType = gearType;
this.door = door;
}
**정리 :
- 명시적 초기화 (=)
- 초기화 블럭 {}, static{}
- 생성자(iv) 초기화
▶️ 클래스 변수 초기화 시점 : 클래스가 처음 로딩될 때 단 한번 (메모리에 올라갈 때)
▶️ 인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다
cv가 초기회되면 iv 초기화가 시작 된다.
'Java' 카테고리의 다른 글
[Java] hashCode(), toString() (0) | 2023.07.09 |
---|---|
[Java] 객체(클래스) (0) | 2023.07.07 |
[Java] 연산자 (0) | 2023.07.07 |
[Java] 메서드 (0) | 2023.07.07 |
[Java] 배열 (0) | 2023.07.07 |