열거형(Enum)

이용만·2023년 3월 6일
0
  • 각 컬렉션의 특성, 어떤 메서드를 사용할 수 있는지?

🔎열거형

열거형은 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 자바 문법요소이다.
몇가지로 한정된 변하지 않는 데이터를 다루는데 사용된다.

class Seasons {
    public static final Seasons SPRING = new Seasons();
    public static final Seasons SUMMER = new Seasons();
    public static final Seasons FALL   = new Seasons();
    public static final Seasons WINTER = new Seasons();
}

public class Main {
    public static void main(String[] args) {
        Seasons seasons = Seasons.SPRING;
        switch (seasons) {
            case Seasons.SPRING:
                System.out.println("봄");
                break;
            case Seasons.SUMMER:
                System.out.println("여름");
                break;
            case Seasons.FALL:
                System.out.println("가을");
                break;
            case Seasons.WINTER:
                System.out.println("겨울");
                break;
        }
    }
}

위의 예제 코드는 호환되지 않는 타입이라는 에러가 발생하는데,
switch문의 조건은 char, byte, short, int, Character, Byte, Short, Integer, String, enum 타입만 가능하지만 Season 객체는 사용자 정의 타입이라서 에러가 발생한다.

public enum Season {
    SPRING,
    SUMMER,
    FALL,
    WINTER
}
public class Main {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        switch (season){
            case SPRING:
                System.out.println("봄");
                break;
            case SUMMER:
                System.out.println("여름");
                break;
            case FALL:
                System.out.println("가을");
                break;
            case WINTER:
                System.out.println("겨울");
                break;
        }
    }
}

-> 출력 결과

위의 예제 코드처럼 enum을 사용하면 switch문을 사용할 수 있다.

📌정리

자바에서 열거형은
🔻여러 상수들을 보다 편리하게 선언하고 관리할 수 있으며,
🔻상수명의 중복을 피하고,
🔻타입에 대한 안정성을 보장한다.

🔎열거형의 사용

enum 열거형이름 { 상수명1, 상수명2, 상수명3, ...}
public enum Season {
    SPRING,
    SUMMER,
    FALL,
    WINTER
}

위 예제 코드를 보면 Season이라는 이름의 열거형은 SPRING, SUMMER, FALL, WINTER 총 4개의
열거 객체를 포함하고 있다.
그리고 각각의 상수들에는 따로 값을 지정해주지 않아도 자동적으로 0부터 시작하는 정수값이 할당되어 각각의 상수를 가리킨다.

enum Seasons { SPRING, SUMMER, FALL, WINTER }

public class EnumExample {
    public static void main(String[] args) {
        Seasons favoriteSeason = Seasons.SPRING;
        System.out.println(favoriteSeason); // SPRING
    }
}

위 예제 코드에서는 Season.SPRING을 Season 타입의 참조변수(favoriteSeasond)에 할당하고 있다.

🔎열거형의 메서드

profile
성장하는 개발자가 되고자 합니다.

0개의 댓글