Java에서의 열거형 사용법

열거형란?

Java에서 열거형(enumeration)은 일련의 상수를 표현하기 위해 사용되는 특수한 유형입니다. 열거형은 코드를 더 명확하게 만들고 유지보수하기 쉽게 합니다. 열거형은 단순한 상수뿐만 아니라 필드, 메서드, 생성자도 포함할 수 있습니다.

팁: 열거형은 클래스의 일종입니다.

열거형 정의

간단한 열거형 예제:

package CoreJava;

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

열거형은 생성자가 없기 때문에 외부에서 객체를 만들 수 없습니다. 열거형 상수는 .을 통해 접근할 수 있습니다.

열거형 사용

열거형을 다른 유형과 같이 사용할 수 있습니다:

package CoreJava;

public class Example {

    public static void main(String[] args) {
        Day today = Day.MONDAY;
        System.out.println(today);
    }
}

열거형 필드와 메서드

열거형은 필드와 메서드를 포함할 수 있습니다:

public enum Planet {
    MERCURY(3.303e+23, 2.4397e6),
    VENUS(4.869e+24, 6.0518e6),
    EARTH(5.976e+24, 6.37814e6),
    MARS(6.421e+23, 3.3972e6);

    private final double mass;
    private final double radius;

    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    public double getMass() { return mass; }
    public double getRadius() { return radius; }

    public double calculateGravity() {
        final double G = 6.67300E-11;
        return G * mass / (radius * radius);
    }
}

추상 메서드 사용

열거형은 추상 메서드를 포함할 수 있습니다:

public enum Operation {
    ADD {
        public double execute(double x, double y) { return x + y; }
    },
    SUBTRACT {
        public double execute(double x, double y) { return x - y; }
    },
    MULTIPLY {
        public double execute(double x, double y) { return x * y; }
    },
    DIVIDE {
        public double execute(double x, double y) { return x / y; }
    };

    public abstract double execute(double x, double y);

    public static void main(String[] args) {
        double x = 10.0;
        double y = 5.0;

        for (Operation op : Operation.values()) {
            System.out.println(x + " " + op + " " + y + " = " + op.execute(x, y));
        }
    }
}

열거형 반복

모든 열거형 상수를 가져와 반복할 수 있습니다:

Day[] days = Day.values();
for (Day day : days) {
    System.out.println(day);
}

생성자와 상속

  • 열거형의 생성자는 기본적으로 프라이빗이며 외부에서 호출할 수 없습니다.
  • 열거형은 java.lang.Enum을 상속하며 다른 클래스를 상속할 수 없습니다.

switch 문 사용

열거형은 switch 문과 잘 어울립니다:

Day day = Day.THURSDAY;
switch (day) {
    case MONDAY:
        System.out.println("Start of work week.");
        break;
    case FRIDAY:
        System.out.println("End of work week.");
        break;
    case SATURDAY:
    case SUNDAY:
        System.out.println("Weekend!");
        break;
    default:
        System.out.println("Midweek day.");
        break;
}

결론

Java의 열거형은 유형 안전을 보장하며 일련의 상수를 표현하는 데 이상적인 도구입니다. 또한 필드, 메서드, 생성자 등을 통해 유연한 기능을 추가할 수 있습니다. 열거형은 상수 집합을 표현할 때 특히 유용합니다.

태그: java Enums OOP

8월 4일 00:26에 게시됨