수업(국비지원)/Java
[Java] chap6: 클래스와 객체 - 초기화 블럭
byeolsub
2023. 4. 15. 23:32
- 초기화 블럭
초기화 블럭
static 초기화 블럭
- 클래스 변수의 초기화
- 클래스 정보가 로드될때 한번 실행
인스턴스 초기화 블럭
- 인스턴스 변수의 초기화. 생성자와 기능이 겹치기 때문에 잘 사용되지는 않음
- 객체 생성시 생성자 호출 전에 먼저 호출 됨.
📌
package chap6;
//호출되는 순서 자세히 보기
public class InitEx1 {
static int cv; // 클래스 변수
int iv; // 인스턴스 변수
InitEx1(){ // 생산자(클래스 이름과 동일)
System.out.println("5. 생성자 호출됨");
}
static { //static 초기화 블럭 <- 메인보다도 먼저 실행됨
cv = (int)(Math.random() * 100); // 클래스 변수
System.out.println("1. 클래스 초기화 블럭 cv="+cv);
}
{ // 인스턴스 초기화 블럭 <- 거의 쓰지 않는다. 생성자와 비슷해서.
iv = (int)(Math.random() * 100);
System.out.println("4. 인스턴스 초기화 블럭 iv="+iv);
}
public static void main(String[] args) {
System.out.println("2. main메서드 시작");
System.out.println("3. main메서드 ie1 객체 생성");
InitEx1 ie1 = new InitEx1();
System.out.println("3. main메서드 ie2 객체 생성");
InitEx1 ie2 = new InitEx1();
System.out.println("6.main메서드 종료");
}
}