본문 바로가기

자바

자바 클래스 초기화 블럭

반응형

이전 글에서는 클래스 변수와 인스턴스 변수가 어떻게 선언되는지에 대해 알아봤습니다. 이번 글에서는 또다른 초기화 방식인 초기화 블럭에 대해 알아보려 합니다. 

 

초기화 블럭은 문자 그대로 {   }으로 구성됩니다. { } 안에 조금 더 긴 문장을 넣을수 있습니다. 명시적 초기화 역시 static을 붙인 클래스 변수와 아무것도 붙지 않은 인스턴스 변수가 있습니다. 

 

이렇게 for문이나 if 문등의 긴 코드를 통해 초기화가 필요한 경우를 위해 사용됩니다.

 

클래스 변수의 초기화에도 순서가 있습니다. 기본 초기화가 1번 명시적 초기화(참조형 변수의 선언) 예를 들어 우리가 보고 있는 클래스 variable_lecture 의 객체를 만들기 위한 variable_lecture vl = new variable_lecture();

가 명시적 초기화 입니다. 그리고 마지막으로 초기화 블럭이 실행 됩니다. 

 

1번 기본 초기화 (예 static int a = 10; )

2번 명시적 초기화 (예 variable_lecture vl = new variable_lecture(); )

3번 초기화 블럭 (예 static{ }; )

 

 

여기서 객체를 하나 생성했을때 a,b,c,s 값이 어떻게 나올까요? 

 

기본 초기화 부터 차근히 계산해 나가겠습니다. 

 

1. s = I am a static

2. s = I am a static man

3. a = 0

4. a = 1

5. a = 2 and c = 2

 

사실은 기본 초기화와 초기화 블럭이 순서대로 실행됨을 볼수 있습니다. 사실 저도 순서대로 실행되어 초기화 블럭이 기본 초기화가 끝난 뒤 실행될줄 알았지만 사실은 위에서 아래대로 초기화 되었습니다. 조금 더 공부가 필요할 거 같습니다. 

 

다음 글에서는 인스턴스 초기화 블럭이 대해 알아보겠습니다.

 

 

반응형