본문으로 바로가기

Java- 변수 초기화

category 프로그래밍 언어/Java 2019. 7. 7. 21:59

변수 초기화

흔히 선언 후 그 선언된 변수에 값을 초기에 채워주는 것을 변수 초기화라고 합니다.

 

주의사항으로 지역 변수에 대해서는 필수적으로 초기화를 시켜주어야 합니다.


변수 초기화 방법

변수를 초기화하는 방법에는 3가지가 있습니다.

 

  1. 명시적 초기화
  2. 초기화 블럭
    1. 인스턴스 초기화 블럭: 인스턴스 변수를 초기화
    2. 클래스 초기화 블럭: 클래스를 초기화
  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