티스토리 뷰

변수의 초기화

  • 변수를 선언하고 처음으로 값을 저장하는 것
  • 멤버변수(iv, cv)와 배열은 각 타입의 기본값으로 ‘자동 초기화’ 된다.
  • 지역변수(lv)는 사용 전에 반드시 ‘수동 초기화’해야 한다.
더보기

지역변수(lv)는 사용 전에 반드시 ‘수동 초기화’해야 한다.

class InitTest {
    int x;    // 인스턴스 변수
    int y;    // 인스턴스 변수
    
    void method1() {
        int i;        // 지역변수
        int j = i;    // 에러. 지역변수를 초기화하지 않고 사용
    }
}

 

각 타입의 기본값

더보기

각 타입의 기본값

▲ 표6-3 타입별 자동 초기화 기본값

 

멤버변수의 초기화 종류

  1. 자동 초기화
  2. 간단 초기화
  3. 복잡 초기화
더보기

1. 자동 초기화

 

2. 간단 초기화

  • 변수를 선언과 동시에 초기화(=, 대입 연산자)
Class Car {
    int door = 4;               // 기본형 변수의 초기화
    Engine e = new Engine();    // 참조형 변수의 초기화
}                               // Engine e;는 참조형 변수의 초기화가 아니다.
  • Engine e;는 참조형 변수의 초기화가 아니다.

3. 복잡 초기화

  1. 인스턴스 초기화 블럭
  2. 클래스 초기화 블럭
  3. 생성자

 

3.1 인스턴스 초기화 블럭

  • 인스턴스변수(iv)의 복잡 초기화에 사용된다.
  • { … }
  • 거의 사용하지 않는다.

3.2 클래스 초기화 블럭

  • 클래스 변수(cv)의 복잡 초기화에 사용된다.
  • static { … }

 

3.3. 생성자

  • 인스턴스변수(iv)의 복잡 초기화에 사용된다.
  • 클래스이름() {  ...  }

 

예제 6-15

 

멤버변수의 초기화 순서

  • ① 클래스 변수(cv) 초기화 → 인스턴스 변수(iv) 초기화
  • ② 자동 초기화 → 명시적 초기화(간단, =) → 초기화 블럭 || 생성자(복잡, 여러 문장 넣기)

 

멤버변수의 초기화 시점

  1. 클래스변수(cv) 초기화 시점
  2. 인스턴스변수(iv) 초기화 시점
더보기

cv 초기화 시점     

  • 클래스가 메모리에 처음 로딩될 때(메모리에 올라갈 때) 단 한번

iv 초기화 시점      

  • 인스턴스가 생성될 때 마다

 

🍪

📄 - 객체지향개념 암기노트 바로가기

'Java의 정석_기초편' 카테고리의 다른 글

자바의 특징  (0) 2022.10.17
상속(Inheritance)  (0) 2022.10.13
생성자(constructor)  (0) 2022.10.12
오버로딩(overloading)과 오버라이딩(overriding)  (0) 2022.10.12
변수와 메서드  (0) 2022.10.11
댓글
공지사항