java

[java] Enum 알아보기

우주유령 2022. 8. 4. 09:05
728x90
반응형

enum class는 상수들의 모음이다.

아래와 같이 선언한다.

Enum Class

public enum OverTime{
	THREE_HOUR(1800);
	FIVE_HOUR(3000);
	private final int amount;
	OverTime(int amount){ //생성자 //생성자는 없어도 컴파일시 자동생성
		this.amount = amount;
	}
	public int getAmount() {
		return this.amount;
	}
}

 

enum의 값들은 동적 변경이 불가능하다!!!

emun의 생성자는 private이나 default로만 선언이 가능하다. 즉, 외부에서 사용할 수 없다.

 

OverTime value = OverTime.FIVE_HOUR; // 선언과 동시에 생성
System.out.println(value); //FIVE_HOUR
System.out.println(value.getAmount()); //3000

 

동적으로 값을 할당할 수 없으니, 만약 3시간의 값이 18000에서 30000으로 올랐을 때 실행중인 자바 프로그램을 중지했다가 다시 컴파일하고 다시시작해야한다는 단점이 있다.

하지만, 성능은 enum을 쓰는것이 훨씬 좋다고 한다.

728x90
반응형