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부터 시작)를 반환함.

 

 

http://www.tcpschool.com/java/java_api_enum

반응형