변수의 초기화

essential·2023년 7월 16일

객체 지향

목록 보기
15/40

변수의 초기화

  • 지역변수(lv)는 수동 초기화 해야함!!!(사용전 꼭!)
  • 멤버 변수(iv,cv)는 자동 초기화 된다.

class InitTest {

int x; //인스턴스 변수(자동초기화)

int y = x; //인스턴스 변수

void method1() {

int j; //지역 변수

int j = i //에러. 지역변수를 초기화하지 않고 사용

}

멤버 변수의 초기화

  • 명시적 초기화(= 선언시) (간단)

class Car {

int door = 4; //기본형 변수(primitive type)의 초기화

Engine e = new Engine(); //참조형 변수(reference type)의 초기화

}

  • 초기화 블럭 (자동)
    • 인스턴스 초기화 블럭 : {}
    • 클래스 초기화 블럭 : static {}
  • 생성자(iv 초기화) (자동)

Car(String color, String gearType, int door) {

  `this.color = color;`

this.gearType = gearType;

this.door = door;

  • 클래스 변수 초기화 시점
    • 클래스가 처음 로딩될 때(메모리에 올라갈 때) 단 한 번
  • 인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다
  • 초기화 순서
    • CV > iv
    • 자동 > 간단 > 복잡
profile
essential

0개의 댓글