티스토리 뷰

 

# 클래스 생성 시 실행 순서
1. 변수 선언 할당
2. 초기화 블럭
3. 생성자 블럭
4. Static 블럭

 

# 목적

초기화 블럭, 생성자 블럭, Static블럭이 작성 순서에 상관없이 어떤 순서로 호출되는지 확인하고자 한다.

package Feedback;

public class num {
	    int x;
	    static float PI;
	   
            //기본 생성자
	    public num() {
	        System.out.println("생성자 호출");
	    }
            // 매개변수 생성자
	    public num(int a) {
	    	System.out.println("매개변수 생성자 호출");
	    }
	    // 초기화 블럭
	    {		
	        System.out.println("초기화 블럭 호출");
	    }
	    // Static 블럭
	    static {
	        PI = 3.14f;
	        System.out.println("STATIC 블럭 호출");
	        //System.out.println(PI);
	    }
	    
}



package Feedback;

public class numTest {
	 public static void main(String[] args) {
	        num s = new num();
	        System.out.println();
	        num a = new num(5);
	        
	 }
}

 

 

# 실행 순서

  Static 블럭 > 초기화 블럭 > 생성자 호출

 

# 정리

> 객체는 여러 개를 생성하지만, Static 블럭은 한번만 호출된다.

> Static 블럭은 여러개 생성하면, 순서대로 호출된다.

> 생성자가 호출되기 전에 Static 블록들이 호출되기 때문에, 클래스를 초기화할 때 꼭 수행되어야 하는 작업이 있을때 유용하게 사용된다.

> 변수 선언에 따른 차이는 '자바의 신' P.208 참조  

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함