Java Class의 변수들을 선언할 때 여러가지 초기화 방법이 있다.
Static Blcok
클래스가 로딩되고 클래스 변수가 준비된 후 자동으로 실행되는 블록,
하나의 클래스안에 여러개의 Statick block 존재 가능.
Instance Block
인스턴스가 생성된 후 자동으로 실행되는 블록.
하나의 클래스안에 여러개의 블록 존재 가능.
생성자 호출 이전에 동작
생성자
인스턴스를 생성한 후 자동으로 호출되는 특별한 메소드
인스턴스 변수와의 차이점 : 파라미터를 받아서 인스턴스 변수를 특정 값으로 초기화 할 수 있다.
여러개의 생성자를 가질 수 있지만 그 중에서 조건에 맞는 1개만 호출됨.
클래스 작성시 따로 작성하지 않으면 컴파일러가 자동으로 기본 생성자 만듬.
클래스 로딩 -> Static block 1회 호출 ->
클래스 선언때마다 인스턴스 생성 -> Instance block 실행 -> 생성자 호출