Memo/짧은 메모

[JAVA] Enum

생각없이 해도 생각보다 좋다. 2022. 10. 30. 15:35

Enum

>Construct

: Enum의 생성자는 private이다. 그 이유는 Enum의 특성과 관련이 있다.

(private 생략해도 IDE는 private이 있다고 인식한다)

: Enum은 런타임이 아닌 컴파일 타임에 모든 값을 알 수 있어야 하기 때문이다.

: Enum의 생성자가 있는 이유는 Enum은 사실 클래스이기 때문이고, 생성자를 활용하는 방안은 내부 필드를 외부에서 인스턴스 생성 방식으로 사용하는 것이다. (새로운 enum 값을 생성하기 위함이 아님)

 

>예시

//Enum 내부 구조
enum Cake{
CAKE_CHEESE(500),
CAKE_STRAWBERRY(300),
CAKE_MILK(400);

private int kcal;

(private) Cake(int kcal){
this.kcal = kcal;
}

//Enum 외부 사용
Cake howManyCalories = Cake.CAKE_CHEESE;
System.out.println(howManyCalories);

/*
출력
500
*/

>Enum 메서드

메서드 설명
Class<E> getDeclaringClass() 열거형의 Class 객체를 리턴한다.
String name() 열거형 상수의 이름을 문자열로 리턴
int ordinal() (웬만하면 사용 X) 열거형 상수가 정의된 순서를 리턴 (0부터 시작, 인덱스 개념이 존재함.)
T valueOf(Class<T> enumType, String name)
T valueOf(String name)
[지정된 열거형에서] name 과 일치하는 열거형 상수를 리턴
T[] values() 열거형 상수들을 배열 형태로 리턴

//출처: https://effortguy.tistory.com/24

 

>이전 블로깅

https://hso8706.tistory.com/49

'Memo > 짧은 메모' 카테고리의 다른 글

[git] git clone 할 때 폴더명 지정하기  (0) 2022.10.30
[SQL] 새로 보는 용어 정리  (0) 2022.10.30
[Spring]예외 전환  (0) 2022.10.27
[Spring] @RestControllerAdvice  (0) 2022.10.26
[JAVA] Final keyword  (0) 2022.10.24