본문 바로가기
쿤즈 Dev/Java

[Java] 열거형(Enum) 클래스로 활용하기

by :)Koon 2023. 9. 20.

지난 포스팅에서는 열거형(Enum)에 대해서 가장 기본적인 내용을 알아보았다.

2023.09.19 - [쿤즈 Dev/Java] - [Java] 열거형(Enum) 사용하기

이번 포스팅에서는 열거형 클래스를 조금 더 알아보자.


열거형 클래스 Enum

열거형 클래스는 열거형을 나태내기 위한 특별한 종류의 클래스다. 열거형은 연관된 상수를 그룹화하고, 이러한 상수 집합을 나타내는 데 사용된다. 'enum' 클래스는 자바 5부터 도입되었으며, 코드의 가독성을 향상시키고 오류를 방지하는데 도움이 된다.

 

열거형 클래스를 만드는 방법은 열거형 상수와 동일하다.

public enum Day {
    SUNDAY,    // 0
    MONDAY,    // 1
    TUESDAY,   // 2
    WEDNESDAY, // 3
    THURSDAY,  // 4
    FRIDAY,    // 5
    SATURDAY   // 6
}

'enum' 클래스는 그 안에 고유한 상수 값을 정의한다. 이러한 상수들은 대문자로 작성되며, 각 상수 사이에 쉼표로 구분된다. 내부의 값은 고유한 정수 값을 가지며 0부터 시작한다. 그리고 이 값은 상수를 구별하는 데 사용된다.

 

추가적으로 메서드와 필드를 가질 수 있다. 이 값들을 가지기 때문에 클래스와 같이 사용할 수 있다. 따라서 속성과 동작을 정의할 수 있다.

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

    private boolean isWeekend;

    static {
        // 주말 여부를 초기화
        SUNDAY.isWeekend = true;
        SATURDAY.isWeekend = true;
    }

    public boolean isWeekend() {
        return isWeekend;
    }
}

이 경우 주말 여부를 알 수 있는 Boolean 변수를 만들고 토요일과 일요일은 값을 true로 설정했다.

 

열거형 클래스의 가장 중요한 부분이며 다른 클래스들과 다른점은 인스턴스를 개발자가 직접 생성할 수 없다는 것이다. 즉, enum 클래스를 생성했다는 의미는 인스턴스가 이미 생성되고 하나만 존재하여 싱글톤으로 존재한다는 의미다. 따라서 컴파일러가 미리 정의한 값 중에서만 사용이 가능하다는 것이다.


열거형(Enum) 클래스는 주로 유한한 집합의 상수를 나타낼 때 사용되며, 코드의 가독성을 향상시키고 오류를 줄이는 데 도움을 준다. 특히 열거혈을 사용하여 요일, 계절, 상태 등의 정해진 표현을 사용하는데 유용한다.

댓글