Java
[Java] Enum의 개념과 사용예제
Choi G.H
2021. 3. 5. 22:56
반응형
Enum 이란?
열거체, 명명된 값을 이루는 집합이다.
Enum의 장점
IDE의 지원: 자동완성, 오타검증, 텍스트 리팩토링
이외에도 타입체크가 가능하고 상숫값이 재정의되어도 다시 컴파일 할 필요가 없다.
사용 예제
public enum Role {
ROLE_ADMIN("관리자"), ROLE_MANAGER("매니저"), ROLE_MEMBER("일반사용자");
private String description;
Role(String description) {
this.description = description;
}
}
역할을 String 형식의 인수로 가질 수도 있겠지만 위와 같이 Role을 관리자, 매니저, 일반사용자로 제한할 수 있다.
위의 enum을 호출할때는
Role.ROLE_ADIMN
Role.ROLE_MANAGER
Role.ROLE_MEMBER
이렇게
{열거체이름}.{상수이름} 의 형식으로 쓴다.
다음은 Enum 클래스의 메서드에 관한 내용이다.
values()
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
public class Enum01 {
public static void main(String[] args) {
Rainbow[] arr = Rainbow.values();
for (Rainbow rb : arr) {
System.out.println(rb);
}
}
}
values() 메서드를 통해 모든 상수를 배열로 받을 수 있다.
RED
ORANGE
YELLOW
GREEN
BLUE
INDIGO
VIOLET
ordinal()
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
public class Enum03 {
public static void main(String[] args) {
int idx = Rainbow.YELLOW.ordinal();
System.out.println(idx);
}
}
2
ordinal()은 상수 자체가 아닌 열거형에서 정의된 순서를 반환한다.
아래는 대표적인 Enum 함수들이다.
static E values() | 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함. |
static E valueOf(String name) | 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함. |
protected void finalize() | 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨. |
String name() | 해당 열거체 상수의 이름을 반환함. |
int ordinal() | 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함. |
반응형