본문 바로가기
Language/java

Java_Study 객체지향 프로그래밍 (변수의 초기화)

by gamxong 2022. 7. 1.

 

변수의 초기화

 

멤버변수와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다.

 

멤버변수의 초기화 방법

  1. 명시적 초기화
  2. 생성자
  3. 초기화 블럭

 

 

 

명시적 초기화

 

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

 

 

 

초기화 블럭

 

클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용
인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용

 

 - 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행

 - 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행

 - 생성자 보다 인스턴스 초기화 블럭이 먼저 수행

 

 

class BlockTest {
	static {
		System.out.println("static { }");
	}
	
	{
		System.out.println("{ }");
	}
	
	public BlockTest() {
		System.out.println("생성자 ");
	}
	public static void main(String[] args) {
		System.out.println("blocktest bt = new blocktest(); ");
		BlockTest bt=new BlockTest();
		
		System.out.println("blocktest bt2 = new blocktest(); ");
		BlockTest bt2 = new BlockTest();
	}
}

/*
실행결과
static { }
BlockTest bt = new BlockTest();
{ }
생성자
BlockTest bt2 = new BlockTest();
{ }
생성자

 

 

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

 

클래스변수의 초기화시점 클래스가 처음 로딩될 때 단 한번 초기화
인스턴스변수의 초기화시점 인스턴스가 생성될 때마다 각 인스턴스별로 초기화
클래스변수의 초기화순서 기본값 > 명시적초기화 > 클래스 초기화 블럭
인스턴스변수의 초기화순서 기본값 > 명시적초기화 > 인스턴스 초기화 블럭 > 생성자

 

 

댓글