1. 변수의 초기화


  • 변수를 선언하고 처음으로 값을 저장하는 것

  • 가능하면 변수를 선언힘과 동시에 초기화 하는 것이 바람직함

  • 지역변수는 사용하기 전에 반드시 초기화해야 함 (멤버변수는 선택적)

  • 각 타입의 기본 값

    자료형기본값
    booleanfalse
    char'\u0000'
    byte, short, int0
    long0L
    float0.0f
    double0.0d 또는 0.0
    참조형 변수null
  • 멤버변수의 초기화 방법
    1. 명시적 초기화
    2. 생성자
    3. 초기화 블럭

2. 명시적 초기화(explicit initialization)


  • 변수를 선언과 동시에 초기화하는 것

3. 초기화 블럭(initialization block)


1. 클래스 초기화 블럭

  • 클래스변수의 복잡한 초기화에 사용됨
  • 인스턴스 초기화 블럭 앞에 static을 덧붙임
  • 클래스가 메모리에 처음 로딩될 때 한번만 수행
  • 인스턴스 초기화 블럭보다 먼저 수행됨

2.인스턴스 초기화 블럭

  • 인스턴스변수의 복잡한 초기화에 사용됨
  • 클래스 내에 블럭 {}을 만들고 코드를 작성함
  • 인스턴스를 생성할 때 마다 수행됨
  • 생성자 초기화 블럭보다 먼저 수행됨
  • 모든 생성자에서 공통으로 수행돼야 하는 코드를 넣는데 사용

Ex)

{
    count++;
    serialNo = count;
}

Car() {
	color = "White";
    gearType = "Auto";
}

Car(String color, String gearType) {
	this.color = color;
    this.gearType = gearType;
}

4. 멤버변수의 초기화 시기와 순서


  • 클래스변수의 초기화시점
    : 클래스가 처음 로딩될 때 단 한번 초기화

  • 인스턴스변수의 초기화시점
    : 인스턴스가 생성될 때마다 각 인스턴스별로 초기화

  • 클래스변수의 초기화순서
    : 기본값 -> 명시적초기화 -> 클래스 초기화 블럭

  • 인스턴스변수의 초기화순서
    : 기본값 -> 명시적초기화 -> 인스턴스 초기화 블럭 -> 생성자

java의 정석 chapter6

profile
Full Stack Developer 📚

0개의 댓글