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
>이전 블로깅
'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 |