초기화가 복잡하다보면 초기화블럭을 통해 코드를 단순하게 짤 수 있는 장점이 있습니다.
초기화블럭은 클래스초기화블럭, 인스턴스초기화블럭 두 개가 있는데요, 차근차근 알아보겠습니다.
1. 클래스 초기화 블럭
클래스 초기화 블럭은 처음에 한 번만 실행되며, 일반 인스턴스 블럭에 static만 붙여주면 클래스 초기화 블럭이 완성됩니다.
2. 인스턴스 초기화 블럭
인스턴스 초기화블럭은 인스턴스를 생성할 때마다 수행되며, 블럭 내에 수행문장을 적어주면 블럭은 완성됩니다.
public class Test {
int test1;
String test2;
static {
System.out.println("static 클래스");
}
{
System.out.println("인스턴스 테스트");
}
Test() {
System.out.println("인스턴스 초기화 블럭 테스트");
}
Test(int test1, String test2) {
System.out.println("인스턴스 초기화 블럭 테스트 2");
}
public static void main(String[] args) {
Test t = new Test();
Test t2 = new Test(1, "AA");
}
}
코드의 순서대로 클래스 초기화블럭, 인스턴스 초기화블럭, 인자가 없는 인스턴스 생성자, 인자가 있는 인스턴스 생성자가 있습니다.
각각 생성자마다 공통적으로 test1 = 5 와 test2 = "test" 가 코드에 있어서 중복된 코드를 해결하고자 인스턴스 초기화 블럭을 사용하였습니다.
아래는 실행결과입니다.
static 클래스
인스턴스 테스트
인스턴스 초기화 블럭 테스트
인스턴스 테스트
인스턴스 초기화 블럭 테스트 2
처음에 한번만 실행되는 static클래스로 시작해서, 객체 생성시 안에 println 메소드와 인스턴스 초기화 블럭을 통해 출력된 println 메소드도 확인할 수 있습니다.
'코딩 > Java' 카테고리의 다른 글
Java 소수점 끊기, 반올림방법 (0) | 2020.07.03 |
---|---|
Java ArrayList, LinkedList (0) | 2020.06.25 |
Java 매개변수와 인자 (0) | 2020.06.23 |
Java 오버로딩과 오버라이딩 (0) | 2020.06.21 |
Java 추상클래스와 인터페이스 (0) | 2020.06.20 |
최근댓글