변수를 선언하고 처음으로 값을 저장하는 것입니다
맴버 변수 : (클래스 변수와 인스턴스 변수)와 배열의 초기화 → 선택적
지역 변수: 사용하기 전 반드시 초기화 → 필수적
각 Type의 기본값(default value)
자료형기본값
boolean | false |
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
명시적 초기화
class Car{
int door = 4; // 기본형(primitive type) 변수 초기화
Engine e = new Engine(); // 참조형(reference type) 변수 초기화
}
기본형 변수 초기화 '=' 는 간단 초기화입니다.
참조형 변수 초기화는 객체를 만들어야합니다
초기화 블럭
(cv) 클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용됩니다.
(iv) 인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용됩니다.
초기화 작업이 복잡하여 명시적 초기화만으로는 부족한 경우 추기화 블럭을 사용합니다.
class InitBlock {
static { //클레스 초기화 블럭 }
public BlockTest(){ //인스턴스 초기화 블럭 }
}
멤버변수의 초기화 시기와 순서
(cv) 클래스변수의 초기화 시점 클래스 처음으로 로딩될때 단 한번 초기화 됩니다+(메모리 옮길때)
( iv)인스턴스변수의 초기화시점 인스턴스가 생성될 때마다 각 인스턴스별로 초기화가 이루어집니다.
클래스변수의 초기화순서 기본값 > 명시적 초기화 > 클래스 초기화 블럭
인스턴스변수의 초기화순서 기본값 > 명시적초기화 > 인스턴스초기화블럭 > 생성자
'JAVA > 객체지향' 카테고리의 다른 글
super & super() (0) | 2023.02.23 |
---|---|
상속 (0) | 2023.02.23 |
생성자 (0) | 2023.02.22 |
오버로딩 ,오버라이딩 (0) | 2023.02.22 |
클래스 메서드(static)와 인스턴스 메서드 (0) | 2023.02.22 |