1. 학습목표
변수의 초기화를 통해 클래스 사용을 이해할 수 있다.
2.필요 개념 문장정리
변수의 초기화
- 변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화라고 한다.
- 멤버변수(클래스변수와 인스턴스변수)와 배열은 초기화는 선택적이지만 지역변수의 초기화는 필수적이다.연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다.
멤버변수의 초기화 방법
- 명시적 초기화
- 생성자
- 초기화블럭
- 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행되며 인스턴스 최기화 블럭은 생성자와 같이 인스턴스를 생성할 떄 마다 수행된다.
- 생성자보다 인스턴스 초기화 블럭이 먼저 수행된다.
3. 코드작성
class StaticBlockTest {
static int[] arr = new int[10];
static {
for(int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random()*10) + 1;
}
}
Public static void main(String args[]) {
for(int i = 0; i < arr.length; i++)
System.out.println("arr[" + i + "] :" + arr[i]);
}
}
실행결과
arr[0] : 4
arr[1] : 8
arr[2] : 7
arr[3] : 2
arr[4] : 2
arr[5] : 10
arr[6] : 7
arr[7] : 10
arr[8] : 1
arr[9] : 7
- 배열이나 예외처리가 필요한 초기화에서는 명시적 초기화만으로 초기화작업을 할 수 없다. 추가적으로 클래스 초기화 블럭을 사용하도록 한다.
4. 마무리
초기화 블럭을 통해 중복되는 코드를 제거하여 재사용성을 높일 수 있음을 이해하였다.
'언어 기초 > JAVA' 카테고리의 다른 글
[자바의정석 | Chapter 07 객체지향 프로그래밍2] 오버라이딩 (0) | 2024.02.05 |
---|---|
[자바의정석 | Chapter 07 객체지향 프로그래밍2] 상속 (0) | 2024.02.01 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 인스턴스의 복사 (0) | 2024.01.30 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 생성자 (0) | 2024.01.30 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 오버로딩 (0) | 2024.01.21 |