본문 바로가기
study/Java

[Java] 23. final3

by 금이패런츠 2022. 3. 21.
728x90
반응형
package chap7;
/*
 * final : 변경 불가의 의미
 * 
 * 상수 : 설정된 값을 변경 할 수 없는 변수
 * final 변수 : 변경불가 변수. 상수(conts 사용안함)
 *     생성자에서 한번은 값을 설정 할 수 있다. => 명시적 초기화 안된 경우만 가능
 *     => 객체별로 다른 상수값을 가질 수 있다.
 */
class FinalValue {
	final int NUM = 100; //선언과 동시에 초기화 필요 (명시적 초기화)
	final int NUM2;
	FinalValue(int n) {
//		this.NUM = n; //명시적 초기화된 상수이므로 생성자에서 초기화 불가
		this.NUM2 = n; //생성자에서 한번은 초기화 가능
//		this.NUM2 = n+10; //생성자에서 한번은 초기화 가능
	}
}
public class FinalValueEx1 {
	public static void main(String[] args) {
		FinalValue f1 = new FinalValue(10);
//		f1.NUM = 200; //상수이므로 값의 변경이 안됨
//		f1.NUM2 = 1000; //상수이므로 값의 변경이 안됨
		System.out.println(f1.NUM); //100
		System.out.println(f1.NUM2);//10
		FinalValue f2 = new FinalValue(20);
		System.out.println(f2.NUM2); //20
	}
}
728x90
반응형