자바 (Java)/요약
Chpt 6. 객체 지향 프로그래밍 - 주제 6. 멤버, 지역 변수의 초기화
학듄
2023. 10. 24. 17:44
728x90
1. 멤버, 지역 변수의 초기화의 차이
멤버 변수 (cv, iv) | (기본값으로) 자동 초기화 => 선택적 |
지역 변수 (lv) | 수동 초기화 => 필수적 |
이때 자동 초기화되는 기본값은 0과 관련된 값이라고 생각하면 된다. 지역 변수는 수동으로 초기화이기 때문에 반드시 사용 전 초기화를 해주어야 한다.
2. 멤버 변수 초기화 순서
static 변수 (한 번만) | 인스턴스 변수 (인스턴스 생성될 때마다) | ||||
(1) 자동 초기화 | (2) 간단 초기화 (=) | (3) 복잡 초기화 (static {}) |
(4) 자동 초기화 | (5) 간단 초기화 (=) | (6) 복잡 초기화 ( (6-2) 생성자) |
인스턴스 변수의 복잡 초기화에서 인스턴스 초기화 블럭 {}은 잘 사용되지 않는다.
[참고 1] 간단 초기화는 명시적 초기화로도 불린다.
[참고 2] static {}, {}, 생성자는 초기화 블럭의 종류다.
[예 1]
class InitTest {
static int cv = 1; // (1) 자동 초기화 (2) 간단 초기화
int iv = 1; // (4) 자동 초기화 (5) 간단 초기화
static { cv = 2; } // (3) 복잡 초기화
{ iv = 2; } // (6) 복잡 초기화 (잘 사용 안 함)
InitTest() ( // (7) 생성자
iv = 3;
)
}
괄호 안 숫자의 순서대로 초기화가 진행된다.
반응형