반응형
지역변수lv는 사용 전 꼭 수동초기화 해야한다
int x; // 인스턴스 변수 iv
int y = x; // 재사용이 빈번하여 자동으로 0으로 초기화된다.
void method1() {
int i; // 지역변수lv
// int j = i; // ERROR 지역변수를 초기화하지 않아 사용할 시 에러.
}
- 지역변수 lv : local valiable는 초기화 하지 않을 시 에러 발생.
- 따라서 변수 선언 시 값을 대입하는 초기화가 필요합니다.
- 인스턴스 변수 iv : instance valiable 은 사용이 빈번하여 클래스 생성시 자동으로 0으로 초기화 된다.
- 자동초기화시 참조변수는 null, boolean은 false, 그 외의 값은 0 으로 초기화된다고 보면 된다.
크게 명시적초기화(간단초기화) 와 block초기화(복잡초기화)로 나눌 수 있다. + 생성자
명시적초기화
: 대입연산자 = 를 이용한
간단초기화
class Car {
/**
* 명시적 초기화(=). 대입연산자 = 를 활용한 간단초기화
*/
int door = 4; // 기본형(primitive type) 변수의 초기화
Engin e = new Engin(); // 참조형(reference type) 변수의 초기화
}
초기화 블럭
: { }를 이용한 복잡초기화
class StiaticBlock {
static int[] arr = new int[10]; // 명시적 초기화
static { // 클래스 초기화 블럭 - 배열 arr을 난수로 채운다.
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10) + 1;
}
}
}
cv : class variable 를 초기화 할 때 static { }을 이용해 복잡한 값을 대입할 수 있다.
아는 내용을 다시 공부하는 거긴 하지만..복잡초기화는 처음 보는 거라 신기하네요.
iv복잡초기화도 있긴한데 잘 안 쓴다고 합니다.
반응형
'☕ 자바 JAVA > ☕ 변수와 자료형 Variables & Data Type' 카테고리의 다른 글
[JAVA]Map<Key, Value> (1) | 2024.09.29 |
---|---|
[JAVA]배열 Array [ ] (0) | 2024.08.22 |
[JAVA]기본형 매개변수와 참조형 매개변수 (0) | 2023.09.17 |
[JAVA]class 객체배열을 만들 때 주의할 점 (0) | 2023.08.19 |
[JAVA]인수(=인자) Argument와 매개변수 Parameter (0) | 2023.01.09 |