enum

별빛사막·2025년 1월 10일

enum(열거형)은 Java에서 상수들의 집합을 나타내는 특수한 데이터 타입이다. 주로 상수 값을 그룹화할 때 사용되며, 값이 고정된 항목을 나타낼 때 유용하다. 예를 들어, 요일, 계절, 방향 등과 같은 제한된 값의 목록을 나타낼 때 적합하다.

1.enum의 개념

  • enum은 클래스처럼 동작하지만, 객체를 생성할 수 없고 미리 정의된 상수들만 가질 수 있다.
  • 각 상수는 enum 타입의 인스턴스로 취급되며, 일반적으로 대문자로 작성한다.
  • enum타입 안전성(type safety)을 제공하여 잘못된 값이 사용되는 것을 방지할 수 있다.

2. enum 정의

enumenum 키워드를 사용하여 정의한다.

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

위의 코드에서는 Day라는 enum을 정의하였고, 요일을 상수로 나타내고 있다.

3. enum 예제

enum을 사용할 때는 그 값들을 참조할 수 있다. 예를 들어, 오늘이 MONDAY라면:

public class EnumExample {
    public static void main(String[] args) {
        Day today = Day.MONDAY;
        System.out.println("오늘은 " + today + "입니다.");
    }
}

출력:

오늘은 MONDAY입니다.

3-1. enum에 메서드 추가

enum은 클래스처럼 메서드를 가질 수 있다. 예를 들어, 각 요일에 대한 활동을 정의할 수 있다.

public enum Day {
    MONDAY("회의"), 
    TUESDAY("프로젝트 작업"), 
    WEDNESDAY("미팅"), 
    THURSDAY("문서 작업"), 
    FRIDAY("팀 회식"), 
    SATURDAY("휴식"), 
    SUNDAY("휴식");

    private String activity;

    // 생성자
    Day(String activity) {
        this.activity = activity;
    }

    // 메서드
    public String getActivity() {
        return activity;
    }
}

public class EnumExample {
    public static void main(String[] args) {
        Day today = Day.MONDAY;
        System.out.println("오늘은 " + today + "이고, 활동은 " + today.getActivity() + "입니다.");
    }
}

출력:

오늘은 MONDAY이고, 활동은 회의입니다.

단계별 설명

  1. enum 선언: enum은 키워드 enum을 사용하여 정의한다. 이때 enum에 포함될 상수들은 대문자로 작성하는 것이 관례이다.
  2. 상수 정의: enum 내에서 각 항목을 정의한다. 각 항목은 객체처럼 동작하는 상수이다.
  3. 값 사용: 정의된 enum 값은 객체처럼 사용되며, 비교하거나 출력할 수 있다.
  4. 메서드 및 필드 추가: enum은 클래스처럼 생성자, 필드, 메서드를 가질 수 있다. 이를 통해 enum 값마다 다른 기능을 부여할 수 있다.
profile
조금씩 매일 성장하자

0개의 댓글