Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

6.9 인스턴스 멤버 - 정적 블록 {} 본문

이것이 자바다/06 클래스

6.9 인스턴스 멤버 - 정적 블록 {}

빌드이너프 2024. 4. 1. 22:08

정적 필드는 필드 선언과 동시에 초기값을 주는 것이 일반적

static double pi = 3.14159;

 

하지만 복잡한 초기화 작업이 필요하다면 정적 블록(static block)를 이용해야 한다

static {
  ...
}

 

정적 블록은 클래스가 메모리로 로딩될 때 자동으로 실행된다

정적 블록이 클래스 내부에 여러 개가 선언되어 있을 경우 선언된 순서대로 실행된다

정적 필드는 객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 실행하지 않는다(생성자는 객체 생성 후 실행되기 때문)

 

company와 model은 선언 시 초기값을 줌

info는 정적 블록에서 company와 model을 연결하여 초기값을 줌

package ch06.sec10.exam02;

public class Television {
	static String company = "MyCompany";
	static String model = "LCD";
	static String info;
	
	static {
		info = company + model;
	}

}
package ch06.sec10.exam02;

public class TelevisionExample {
	public static void main(String[] args) {
		System.out.println(Television.company);
		System.out.println(Television.model);
		System.out.println(Television.info);
	}
}
MyCompany
LCD
MyCompanyLCD