●초기화 블럭
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class StaticE{
private int number;
private static int num=1;
{
number = 100;
System.out.println("인스턴스 변수 초기화용 초기화 블럭1");
}
public class Class26 {
public static void main(String[] args) {
StaticE f = new StaticE();
}
}
|
cs |
일반 초기화 블럭 : 객체 생성시 실행(생성자와 성격이 비슷)
단순 값으로 초기화하는 경우 대입연산자를 통해서 처리할 수 있지만,
실행문이 포함된 초기화를 진행하는 경우 위와 같이 초기화 과정을 정의할 수 있음 { } 안에 내용을 쓴다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class StaticE{
private int number;
private static int num=1;
static {
System.out.println("StaticF의 static 블럭 실행");
num = 55;
} //static 블럭은 객체 생성 이전에 실행됩니다.public class Class26 {
public static void main(String[] args) {
StaticE f = new StaticE();
}
}
|
cs |
static 초기화 블럭 : static 멤버를 초기화하기 위한 영역
단순 값으로 초기화하는 경우 대입연산자를 통해서 처리할 수 있지만
실행문이 포함된 초기화를 진행하는 경우 위와 같이 초기화 과정을 정의할 수 있음 static{} 안에 내용을 쓴다.
static 블럭은 객체 생성 전에 이미 실행이 되기 때문에
출력값에서 다른 인스턴스 블럭들보다 먼저 출력이 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class StaticE{
static int cnt=0;
int serialNo;
{
++cnt;
serialNo = cnt;
System.out.println("인스턴스 변수 초기화용 초기화 블럭2");
}
public static void main(String[] args) {
StaticE f = new StaticE();
}
}
|
cs |
->일반 초기화블럭에서는 스태틱 멤버에 자유롭게 접근이 가능합니다
->but 스태틱 초기화 블럭에서 인스턴스 멤버접근은 제한됩니다.
'JAVA > 수업 복습' 카테고리의 다른 글
자바 공부기록 44 - 상속(Extends) (0) | 2022.05.03 |
---|---|
자바 공부기록 43 - 싱글턴 패턴 (0) | 2022.04.28 |
자바 공부기록 41 - Private으로 지정된 Static 변수 (0) | 2022.04.28 |
자바 공부기록 40 - 인스턴스 메서드 / 스태틱 메서드 / 인스턴스 변수 / 스태틱 변수 (0) | 2022.04.28 |
자바 공부기록 39 - Static 메소드 기초 / 자료형변환 클래스 내 메소드의 활용 (0) | 2022.04.28 |