달력

7

« 2020/7 »

  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  


 

 

 

초기화 블록 종류

·         인스턴스 초기화 블록

·         클래스 초기화 블록

 

 

 

 

인스턴스 초기화 블록

·         인스턴스 초기화 블록은 단순히 중괄호({})만을 사용하여 정의할 있습니다.

·         인스턴스 초기화 블록은 생성자와 마찬가지로 인스턴스가 생성될 때마다 실행됩니다.

·         하지만 인스턴스 초기화 블록이 생성자보다 먼저 실행됩니다.

·         생성자와 인스턴스 초기화 블록의 차이는 거의 없으므로 인스턴스 초기화 블록은 사용되지 않습니다.

·         여러 개의 생성자가 있으면 모든 생성자에서 공통으로 수행되어야 코드 인스턴스 초기화 블록에 포함하여 코드의 중복을 막을 있습니다.

 

class MyClass {

// 인스턴스 변수 선언

    int instanceVar;

   

    { // 인스턴스 초기화 블록

        this.instanceVar = 10;

    }

   

    // 생성자

    MyClass(){

       

    }

}

 

 

 

클래스 초기화 블록

·         클래스 초기화 블록은 인스턴스 초기화 블록에 static 키워드를 추가하여 정의할 있습니다.

·         이러한 클래스 초기화 블록은 클래스가 처음으로 메모리에 로딩될 번만 실행됩니다.

 

·         클래스 초기화 블록은 생성자나 인스턴스 초기화 블록으로는 수행할 없는 클래스 변수의 초기화를 수행할 사용됩니다.

 

static { // 클래스 초기화 블록을 이용한 초기화

초기화 문장;

}

 

 

static {

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요