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

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

by kangs' tong 2023. 8. 19.

열거 타입(Enum)이란?

열거 타입(Enum)은 여러 개의 상수들을 한 곳에 모아 정의하고 사용할 수 있는 자료형입니다. 자바에서는 JDK 1.5부터 열거 타입이 도입되었으며, C# 등의 다른 언어에서도 지원하고 있습니다. 열거 타입은 주로 서로 연관된 상수들을 그룹화하여 사용할 때 유용하게 사용됩니다.

열거 타입은 다음과 같은 특징을 가지고 있습니다.

  • 여러 개의 상수 값들을 한 곳에 모아 정의할 수 있습니다.
  • 한 가지 타입으로 여러 개의 상수를 관리할 수 있습니다.
  • 상수 값들은 유일하며, 서로 비교할 수 있습니다.

열거 타입의 선언과 사용

자바에서 열거 타입은 enum 키워드를 사용하여 선언합니다. 열거 타입의 구성원은 해당 타입의 상수들 뿐이며, 각 상수 값은 열거 타입의 인스턴스입니다. 열거 타입은 클래스와 마찬가지로 필드, 생성자, 메소드 등을 가질 수 있습니다.

다음은 열거 타입의 선언과 사용 예제입니다.

enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

public class EnumExample {

    public static void main(String[] args) {
        Day today = Day.MONDAY;

        System.out.println("Today is " + today);  // Today is MONDAY

        if (today == Day.SATURDAY || today == Day.SUNDAY) {
            System.out.println("It's the weekend!");
        } else {
            System.out.println("It's a weekday!");
        }
    }
}

위 예제는 요일을 나타내는 열거 타입 Day를 선언하고 사용하는 예제입니다. Day 열거 타입의 상수 값들은 SUNDAY, MONDAY, TUESDAY, ..., SATURDAY로 구성되어 있습니다. Day 타입의 변수 today에 Day.MONDAY를 대입하여 오늘의 요일을 표현하였습니다. todayDay.SATURDAY 또는 Day.SUNDAY를 비교하여 주말인지 평일인지 출력하는 예제입니다.

열거 타입의 메소드

열거 타입은 메소드를 가질 수 있으며, 각 상수 값을 사용하여 메소드 호출이 가능합니다. 열거 타입의 메소드는 다음과 같은 형태로 정의됩니다.

enum EnumName {
    CONSTANT1(value1),
    CONSTANT2(value2),
    ...

    ReturnType methodName(parameter) {
        // 메소드 구현
    }
}

다음은 열거 타입의 메소드 사용 예제입니다.

enum Currency {
    KRW("Korean won", "₩"),
    USD("United States dollar", "$"),
    JPY("Japanese yen", "¥"),
    EUR("Euro", "€"),
    GBP("British pound", "£");

    private final String fullName;
    private final String symbol;

    Currency(String fullName, String symbol) {
        this.fullName = fullName;
        this.symbol = symbol;
    }

    public String getFullName() {
        return fullName;
    }

    public String getSymbol() {
        return symbol;
    }
}

public class EnumMethodExample {

    public static void main(String[] args) {
        Currency krw = Currency.KRW;

        System.out.println(krw.getFullName());  // Korean won
        System.out.println(krw.getSymbol());  // ₩
    }
}

위 예제는 통화를 나타내는 열거 타입 Currency를 선언하고, 열거 타입 내부에 getFullName()getSymbol()이라는 메소드를 추가한 예제입니다. 각 상수 값들은 금액의 통화명과 심볼로 구성되어 있으며, 생성자를 통해 초기값을 할당합니다. getFullName()getSymbol() 메소드는 해당 상수의 멤버 필드 값을 반환합니다.

열거 타입의 활용 예제

열거 타입은 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어 다음과 같은 상황에서 열거 타입을 사용할 수 있습니다.

  • 요일, 월, 계절 등과 같이 고정된 값들을 나타내는 경우
  • 상태 값들을 표현하는 경우 (예: 주문 상태 - 주문 중, 결제 완료, 배송 완료 등)
  • 선택 가능한 옵션을 지정하는 경우 (예: 사용자의 성별, 주문 수량 등)
  • 기타 상태나 타입을 구분하는 경우

마무리

이번 포스팅에서는 열거 타입(Enum)의 사용법과 예제에 대해 알아보았습니다. 열거 타입은 여러 개의 상수 값을 한 곳에 모아 정의하고 사용할 수 있는 자료형으로, 주로 서로 연관된 상수들을 그룹화하여 사용할 때 유용하게 사용됩니다. 열거 타입은 클래스와 유사하게 필드, 생성자, 메소드 등을 가질 수 있으며, 각 상수 값들이 해당 타입의 인스턴스입니다. 이를 통해 상수 값을 사용하여 메소드 호출이 가능한 등 다양한 기능을 구현할 수 있습니다. 열거 타입은 요일, 상태 값, 선택 가능한 옵션 등 다양한 상황에서 활용될 수 있으며, 코드의 가독성과 유지 보수성을 높여줍니다.

댓글