enum(열거형)은 자바에서 제공하는 데이터 타입 중 하나이.
enum은 서로 관련 있는 상수 값을 정의할 때 사용된다.
예를 들어, 요일을 나타내는 상수를 정의할 때 enum을 사용할 수 있다.

enum을 정의할 때는 enum 키워드를 사용하며, 각 상수 값을 나열한다.
상수 값은 모두 대문자로 작성하며, 값 사이에 쉼표(,)를 사용하여 구분한다.
각 상수 값은 해당 enum타입의 객체이며, enum타입의 객체를 생성할 때는 new키워드를 사용하지 않는다.

enum은 switch 문에서 사용될 수 있으며, 각 상수 값은 해당 enum 타입의 객체이기 때문에 객체지향적인 설계를 할 수 있다.

아래는 enum을 정의하는 예시 코드이다.

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

위 코드는 Weekday라는 enum 타입을 정의한다. Weekday 타입의 객체는 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY 값 중 하나를 가지며, 이 값은 변경할 수 없다.

Weekday 타입의 객체를 사용하려면 다음과 같이 코드를 작성한다.

Weekday day = Weekday.MONDAY;
if (day == Weekday.MONDAY) {
    System.out.println("Today is Monday");
}

위 코드는 Weekday 타입의 day 변수를 생성하고, 이 변수를 Weekday.MONDAY로 초기화한다.
if 문에서 day 변수가 Weekday.MONDAY와 같은지 확인하며, 같으면 "Today is Monday"을 출력한다.

enum은 switch 문에서 사용할 때도 유용하다.

Weekday day = Weekday.MONDAY;
switch (day) {
    case MONDAY:
        System.out.println("Today is Monday");
        break;
    case TUESDAY:
        System.out.println("Today is Tuesday");
        break;
    case WEDNESDAY:
        System.out.println("Today is Wednesday");
        break;
    // ...
}

위 코드는 Weekday 타입의 day 변수를 생성하고, 이 변수를 Weekday.MONDAY로 초기화한다.
switch 문에서 day 변수의 값에 따라 각각 다른 동작을 수행한다.
예를 들어, day 변수가 Weekday.MONDAY와 같으면 "Today is Monday"을 출력한다.

enum은 서로 관련 있는 상수 값을 정의할 때 유용한 데이터 타입이다.
enum은 객체지향적인 설계를 할 수 있으며, switch 문에서 사용할 때도 유용하다. enum을 사용하면 코드의 가독성을 높일 수 있고, 상수 값에 대한 오타나 잘못된 값의 입력을 방지할 수 있다.
또한, enum은 인터페이스를 구현할 수 있어, 인터페이스를 구현하는 경우 사용될 수 있다.

enum의 메소드

name() : enum 상수의 이름을 문자열로 반환
ordinal() : enum 상수가 정의된 순서(0부터 시작)를 반환
valueOf(String name) : 주어진 이름(name)에 해당하는 enum 상수를 반환
values() : enum에 정의된 모든 상수 배열을 반환
이 중 valueOf(String name) 메소드를 사용하면, 문자열에 해당하는 enum 상수를 찾을 수 있다.
예를 들어, Weekday enum에서 "MONDAY" 문자열에 해당하는 enum 상수를 찾으려면 다음과 같이 코드를 작성한다.

Weekday day = Weekday.valueOf("MONDAY");

위 코드는 "MONDAY" 문자열에 해당하는 enum 상수를 day 변수에 할당한다.
이 때, 문자열이 대소문자를 구분하므로, 대문자 "MONDAY"를 입력해야 한다.

enum은 자바에서 자주 사용되는 데이터 타입 중 하나이며, 서로 관련 있는 상수 값을 정의할 때 유용하다.enum은 객체지향적인 설계를 할 수 있고, 상수 값에 대한 오타나 잘못된 값의 입력을 방지할 수 있다.

profile
I'm still hungry.

0개의 댓글