변수 초기화
흔히 선언 후 그 선언된 변수에 값을 초기에 채워주는 것을 변수 초기화라고 합니다.
주의사항으로 지역 변수에 대해서는 필수적으로 초기화를 시켜주어야 합니다.
변수 초기화 방법
변수를 초기화하는 방법에는 3가지가 있습니다.
- 명시적 초기화
- 초기화 블럭
- 인스턴스 초기화 블럭: 인스턴스 변수를 초기화
- 클래스 초기화 블럭: 클래스를 초기화
- 생성자를 통한 초기화
1. 명시적 초기화
말 그대로 선언과 동시에 초기화를 진행합니다.
class A{
int a = 4; // 명시적 초기화
}
2. 초기화 블럭
- 클래스 초기화 블럭
- 처음 메모리 로딩될 때 딱 한번 수행
- 클래스 초기화
- 인스턴스 초기화 블럭
- 인스턴스 변수 초기화
- 인스턴스가 생성될 때 수행됨
이러한 블럭을 이용하면 자유자재로 for문을 이용한다거나 할 수 있어 유용합니다.
class A {
// 클래스 초기화 블럭
static {
}
// 인스턴스 초기화 블럭
{
}
}
인스턴스 초기화 블럭은 여러 생성자가 공통적으로 수행해야할 초기화 작업이 있다면 여기서 초기화를 진행합니다.
A() {
a++; // 코드 중복
b = a; // 코드 중복
name = "LJC";
age = 25;
}
A(String name, int age) {
a++; // 코드 중복
b = a; // 코드 중복
this.name = name;
this.age = age;
}
이를 인스턴스 초기화 블럭을 이용해서 공통으로 묶어줄 수 있습니다.
{
a++;
b = a;
}
A() {
name = "LJC";
age = 25;
}
A(String name, int age) {
this.name = name;
this.age = age;
}
3. 순서
클래스 변수
- 초기화 시점 : 클래스가 처음 로딩될 때 딱 한번
- 초기화 순서 : 명시적 -> 클래스 초기화 블럭
인스턴스 변수
- 초기화 시점 : 인스턴스가 생성될 때마다 각 인스턴스별로 초기화
- 초기화 순서 : 명시적 -> 인스턴스 초기화 블럭 -> 생성자
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java- 상속 (0) | 2019.07.08 |
---|---|
Java- 오버라이딩 (0) | 2019.07.07 |
Java- 생성자(Constructor) (0) | 2019.07.04 |
Java- 가변인자 (0) | 2019.07.04 |
Java - Overloading (0) | 2019.07.03 |