🔥 Vamos/Java

1022 | 자바의 정석 예제 :: 생성자를 이용한 final 멤버변수 초기화

unikue 2022. 10. 23. 15:39

final이 붙은 변수= 상수이므로 일반적으로 선언과 초기화를 동시에 한다.

그러나 인스턴스 변수는 생성자에서 초기화 가능하므로,

 

클래스 내에 매개변수를 갖는 생성자 생성 👉 인스턴스 생성시 초기화 필요값을 생성자로부터 제공받음.

👉 각 인스턴스마다 final이 붙은 멤버변수 (상수)가 각각 다른값을 가지게 됨.

 

 

class Card {
	final int NUMBER; // 상수지만 선언과 함께 초기화 하지 않고 인스턴스 생성시 생성자로부터 초기화값을 제공받음
	final String KIND;
	static int width = 100; // 인스턴스 생성 전부터 세팅되는 값
	static int height = 250;
	
	Card(String kind, int num){
		KIND = kind;
		NUMBER= num;
	}
	Card(){
		this("HEART",1);
	}
	public String toString() {
		return KIND+" "+NUMBER;
	}
}	
	
class BookEx{
	public static void main(String[] args) {
		Card c = new Card("HEART",10);
		System.out.println(c);
		
		Card d = new Card("DIAMOND",2);
		System.out.println(d);
	}		
}

 


final과 static모두 개념적인 부분만 자꾸 떠올라서 활용법을 인지하기 위해 남기는 글.