- 초기화 블럭
초기화 블럭
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메서드 종료");
}
}
'수업(국비지원) > Java' 카테고리의 다른 글
| [Java] chap7 : 클래스의 관계 - Super예약어, Super 생성자 (0) | 2023.04.15 |
|---|---|
| [Java] chap7: 클래스의 관계 - 상속1 (0) | 2023.04.15 |
| [Java] chap6: 클래스와 객체 - This 예약어, This 예약어 Exam6 (0) | 2023.04.15 |
| [Java] chap6 : 클래스와 객체 - 생성자 Exam 4-5 (0) | 2023.04.15 |
| [Java] chap6 : 클래스와 객체 - 생성자, 생성자 오버로딩 (0) | 2023.04.15 |