728x90
초기화순서
- static block -> 인스턴스 block -> 생성자
예제코드
public class Book {
static {
System.out.println("책 static 블록");
}
public Book() {
System.out.println("책 생성자");
}
{
System.out.println("책 인스턴스 블록");
}
}
public class JavaBook extends Book {
static {
System.out.println("JAVA 책 static 블록");
}
public JavaBook() {
System.out.println("JAVA 책 생성자 블록");
}
{
System.out.println("JAVA 책 인스턴스 블록");
}
}
결과
public class Main {
public static void main(String[] args) {
System.out.println("책을 이용하여 초기화 순서를 확인해보자.");
Book book = new Book();
}
/*
1. 책 static 블록
2. 책 인스턴스 블록
3. 책 생성자
*/
}
public class Main {
public static void main(String[] args) {
System.out.println("책을 이용하여 초기화 순서를 확인해보자.");
Book book1 = new Book();
Book book2 = new Book();
}
/*
1. 책 static 블록
2. 책 인스턴스 블록
3. 책 생성자
4. 책 인스턴스 블록
5. 책 생성자
static 블록은 한번만 호출됨
*/
}
public class Main {
public static void main(String[] args) {
System.out.println("책을 이용하여 초기화 순서를 확인해보자.");
Book book1 = new Book();
Book book2 = new Book();
}
/*
1. 책 static 블록
2. 책 인스턴스 블록
3. 책 생성자
4. 책 인스턴스 블록
5. 책 생성자
static 블록은 한번만 호출됨
*/
}
public class Main {
public static void main(String[] args) {
System.out.println("책을 이용하여 초기화 순서를 확인해보자.");
JavaBook javaBook = new JavaBook();
}
/*
1. 책 static 블록
2. JAVA 책 static 블록
3. 책 인스턴스 블록
4. 책 생성자
5. JAVA 책 인스턴스 블록
6. JAVA 책 생성자 블록
부모 클래스인 책 static 선언 이후 자식 클래스 static 블록이 선언된다.
*/
}
'JAVA' 카테고리의 다른 글
[JAVA] 상태패턴 (0) | 2021.05.21 |
---|---|
[JAVA] Builder 패턴 (0) | 2021.05.16 |
[JAVA] 상속 / 컴포지션 (0) | 2021.05.15 |
[JAVA] static 정리 (0) | 2021.05.15 |
[JAVA] Lombok @Delegate (0) | 2021.04.18 |