[static 블락]
-동일 클래스 안의 main보다 먼저 실행됨 즉 main에 실행코드가 없어도 static블락안에 있는 내용이 실행됨
단, 다른 클래스에 main이 있는 경우는
다른 클래스의 main이 순차적으로 실행되다 ***static블락이 있는 클래스를 인스턴스화 할때***
그때 ****생성자보다 먼저 static블락이 실행된다.*******
Static 블락안에서는 정적 멤버만 사용가능
모든객체가 공유한다.
* static형식 :
static{
이 안엔 정적멤버만 사용 가능
}
public class StaticBlock {
public StaticBlock() {
System.out.println("staticBlock의 생성자");
}
//인스턴스형 멤버
int instanceVar;
void instanceMethod() {}
//정적멤버
static int staticVar;
static void staticMethod() {
int localVar = 10; //지역변수
System.out.println("정적 메소드:"+localVar);
}
////////static 블락//////////////////////////
static {
System.out.println("[static블락 시작]");
System.out.println(instanceVar); 인스턴스형 멤버는 못옴
System.out.println(staticVar);
staticMethod(); 정적멤버 가능
int localvar = 10;
System.out.println("static블락에서 선언한 지역변수:" +localvar );
System.out.println("[static블락 끝]");
} //////////////////////////////////////////
main
System.out.println("[StaticBlockApp의 메인 메소드]"); <--- 컴퓨터는 메인 위에서부터 차례로 실행하는데
StaticBlock sb=new StaticBlock(); <-- 요 생성자 보다 static블락이 먼저 실행됨
'학원 > JAVA' 카테고리의 다른 글
9.27 10-5 AutoBoxing <->AutoUnBoxing (0) | 2022.09.27 |
---|---|
9.27 10 - 4 계산기로보는 멤버변수들비교 (0) | 2022.09.27 |
9.27 10-2 정적멤버변수 vs 인스턴스형멤버변수 (0) | 2022.09.27 |
9.27 10-1 GlobalNLocalVar (0) | 2022.09.27 |
9.26 9-4일 차 [접근 지정자] (1) | 2022.09.26 |