관리 메뉴

사적공간

필드 초기화 실행순서 확인 본문

KNOU_CS/JAVA

필드 초기화 실행순서 확인

2sac 2024. 4. 29. 16:47

실행순서는

1. static 필드 선언문 초기화

2. static 초기화 블록 초기화

3. non-static 필드 선언문 초기화

4. non-static 초기화 블록 초기화

5. 생성자 초기화 

 

non-static 필드는 생성자로(객체생성시 마다 초기화 됨 )

static 필드는 선언문이나 초기화 블록으로 (해당 클래스로 로드시 한 번만 초기화 됨)

초기화를 하는 것이 바람직함. 

class IniTest {
    public int nNomal1 = 10, nNomal2 = 20; // non-static 필드 선언문 초기화
    public static int nStatic1 = 50, nStatic2 = 60; // static 필드 선언문 초기화 
    
    {
        nNomal1 = 30;
        nNomal2 = 40;
    } // non-static 초기화 블록 초기화
    
    static {
        nStatic1 = 70;
        nStatic2 = 80;
    } // static 초기화 블록 초기화
    
    public IniTest() { 
        nNomal1 = 100;
        nNomal2 = 200;
        nStatic1 = 300;
        nStatic2 = 400;
    } // 생성차 초기화 

}

public class Main { 
    public static void main(String [] args) {
        IniTest it = new IniTest();
    System.out.println(it.nNomal1);
    System.out.println(it.nNomal2);
    System.out.println(it.nStatic1);
    System.out.println(it.nStatic2);
    } // 우선순위가 가장 낮은 생성자 초기화가 결과값으로 나오는 것을 확인함 .
}