본문 바로가기
카테고리 없음

열거 타입(Enum) 사용법 & 예제

by sftt 2023. 11. 27.

Enum 사용법 및 예제

1. Enum이란?

Enum(열거 타입)은 서로 관련된 상수들의 집합을 의미합니다. 주로 고정된 상수 값을 정의할 때 사용하며, 일반적으로 관련있는 상수들을 하나의 그룹으로 묶어 표현하는데 사용됩니다.

2. Enum 작성 방법

Enum은 Java에서 기본적으로 지원되며, 다음과 같이 작성합니다.

enum EnumName {
    CONSTANT1,
    CONSTANT2,
    CONSTANT3,
    // ...
}

위의 코드에서 EnumName은 열거 타입의 이름이고, CONSTANT1, CONSTANT2, CONSTANT3은 상수들입니다. 각 상수들은 콤마(,)로 구분되며, 선언된 순서대로 0부터 시작하는 인덱스 값을 가집니다.

3. Enum의 메소드와 활용

Enum은 자체적으로 메소드를 가질 수 있으며, 주로 다음과 같은 메소드를 활용할 수 있습니다.

3.1. values()

values() 메소드는 해당 열거 타입의 모든 상수들을 배열 형태로 리턴합니다.

for (EnumName enumName : EnumName.values()) {
    System.out.println(enumName);
}

위의 코드는 enumName이라는 변수에 EnumName의 모든 상수들을 하나씩 대입하여 출력하는 예시입니다.

3.2. valueOf(String name)

valueOf(String name) 메소드는 주어진 문자열과 일치하는 상수를 찾아 리턴합니다.

EnumName enumName = EnumName.valueOf("CONSTANT2");
System.out.println(enumName);

위의 코드는 "CONSTANT2"라는 문자열과 일치하는 EnumName의 상수를 찾아 enumName 변수에 대입하고, 출력하는 예시입니다.

3.3. 사용자 정의 메소드

Enum은 사용자가 필요에 따라 추가로 메소드를 정의할 수 있습니다.

enum Weekday {
    MONDAY("월요일"),
    TUESDAY("화요일"),
    WEDNESDAY("수요일"),
    THURSDAY("목요일"),
    FRIDAY("금요일"),
    SATURDAY("토요일"),
    SUNDAY("일요일");

    private String koreanName;

    Weekday(String koreanName) {
        this.koreanName = koreanName;
    }

    public String getKoreanName() {
        return koreanName;
    }
}

위의 코드는 Weekday라는 열거 타입을 정의하고, 각 상수들에 대해 한글 요일명을 저장하는 koreanName 멤버 변수와 getKoreanName() 메소드를 추가한 예시입니다.

4. Enum 예제

아래는 열거 타입의 예시입니다.

enum Fruit {
    APPLE,
    BANANA,
    ORANGE
}

public class EnumExample {
    public static void main(String[] args) {
        Fruit myFruit = Fruit.APPLE;
        System.out.println(myFruit); // APPLE

        for (Fruit fruit : Fruit.values()) {
            System.out.println(fruit);
        }

        Fruit anotherFruit = Fruit.valueOf("ORANGE");
        System.out.println(anotherFruit); // ORANGE
    }
}

위의 코드는 Fruit라는 열거 타입을 정의하고, 해당 열거 타입을 사용하여 변수를 선언하고 출력하는 예시입니다. 또한 values() 메소드를 사용하여 모든 상수를 출력하고, valueOf(String name) 메소드를 사용하여 문자열과 일치하는 상수를 찾아 출력합니다.

위의 예제에서의 출력 결과는 다음과 같습니다:

APPLE
BANANA
ORANGE
ORANGE

댓글