초기화가 복잡하다보면 초기화블럭을 통해 코드를 단순하게 짤 수 있는 장점이 있습니다.

초기화블럭은 클래스초기화블럭, 인스턴스초기화블럭 두 개가 있는데요, 차근차근 알아보겠습니다.

 

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기