본문 바로가기

자습

[JAVA] enum 클래스

728x90
반응형

Java의 enum 클래스는 서로 연관된 상수들의 집합을 정의하는 데 사용되는 특별한 유형의 클래스입니다. enum은 "열거형(enumeration)"의 약어로, 상수를 표현하고 관리하는데 편리한 방법을 제공합니다. Java 5부터 enum 클래스가 도입되었으며, 코드를 더 안전하고 가독성 있게 만들어줍니다.

enum 클래스를 정의하는 방법은 간단합니다. 예를 들어, 커피의 사이즈를 나타내는 enum을 만들어보겠습니다:

public enum CoffeeSize {
    SMALL,
    MEDIUM,
    LARGE
}


위 코드에서 CoffeeSize는 enum 클래스의 이름이며, SMALL, MEDIUM, LARGE는 해당 enum의 상수들입니다. enum의 상수들은 자동으로 public static final로 선언되어 있으며, 대문자로 작성하는 것이 관례입니다.

enum을 사용하는 이유:

가독성: enum을 사용하면 코드가 더 가독성 있고 이해하기 쉽습니다. 코드의 의도를 명확하게 표현할 수 있습니다.

안정성: enum을 사용하면 컴파일러가 상수의 타입 검사를 수행하여 타입 안정성을 보장합니다. 잘못된 타입의 값을 사용하려고 하면 컴파일 오류가 발생합니다.

편의성: enum을 사용하면 IDE에서 자동 완성 기능을 사용할 수 있어서 상수를 쉽게 찾을 수 있습니다.

enum 사용 예제:

public class Coffee {
    private String name;
    private CoffeeSize size;

    public Coffee(String name, CoffeeSize size) {
        this.name = name;
        this.size = size;
    }

    public String getName() {
        return name;
    }

    public CoffeeSize getSize() {
        return size;
    }
}
public class Main {
    public static void main(String[] args) {
        Coffee coffee1 = new Coffee("Cappuccino", CoffeeSize.MEDIUM);
        Coffee coffee2 = new Coffee("Espresso", CoffeeSize.SMALL);

        System.out.println(coffee1.getName() + " - " + coffee1.getSize());
        System.out.println(coffee2.getName() + " - " + coffee2.getSize());
    }
}


출력 결과:

Cappuccino - MEDIUM
Espresso - SMALL


enum 클래스를 사용하면 코드의 가독성과 안정성을 향상시킬 수 있으며, 관련된 상수들을 쉽게 관리할 수 있습니다.

 

 

enum 상수의 커스텀 데이터

커피의 사이즈를 나타내는 enum을 확장하여 각 사이즈에 해당하는 용량 값을 추가해보겠습니다:

public enum CoffeeSize {
    SMALL(355),
    MEDIUM(473),
    LARGE(591);

    private final int milliliters;

    CoffeeSize(int milliliters) {
        this.milliliters = milliliters;
    }

    public int getMilliliters() {
        return milliliters;
    }
}

위 코드에서 CoffeeSize enum은 세 개의 상수(SMALL, MEDIUM, LARGE)를 가지고 있습니다. 각 상수 뒤에 숫자를 지정하여 해당 사이즈의 커피의 용량을 나타냅니다.

이렇게 enum 상수에 커스텀 데이터를 추가함으로써, 각 상수가 특정 값을 가질 수 있습니다. 예제에서는 milliliters라는 변수를 사용하여 각 상수의 용량을 저장하고, getMilliliters() 메서드를 통해 해당 값을 가져올 수 있도록 하였습니다.

이제 enum 변수를 사용할 때 해당 상수의 값을 가져오는 예제를 살펴보겠습니다:

public class Main {
    public static void main(String[] args) {
        CoffeeSize coffeeSize = CoffeeSize.SMALL;
        System.out.println("Size: " + coffeeSize.name());
        System.out.println("Milliliters: " + coffeeSize.getMilliliters());
        System.out.println(coffeeSize);
    }
}


출력 결과:

Size: SMALL
Milliliters: 355
SMALL

이렇게 enum 변수를 선언하고 사용할 때, 커스텀 데이터로 지정한 값을 이용하여 각 enum 상수에 대한 추가 정보를 활용할 수 있습니다.

 

728x90
반응형