PHpullh
학습 라이브러리/Java/열거형(Enum) 심화

JAVA · 기초 문법

열거형(Enum) 심화

열거형에 필드, 메서드, 추상 메서드를 추가하는 고급 패턴입니다.

기초 문법중급enum열거형필드메서드

핵심 설명

열거형에 필드, 메서드, 추상 메서드를 추가하는 고급 패턴입니다.

Java code

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;    // kg
    private final double radius;  // m

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

    static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }

    double surfaceWeight(double otherMass) {
        return otherMass * surfaceGravity();
    }

    public static void main(String[] args) {
        double earthWeight = 75.0;
        double mass = earthWeight / EARTH.surfaceGravity();
        for (Planet p : values()) {
            System.out.printf("%s에서 몸무게: %.2fkg%n",
                p, p.surfaceWeight(mass));
        }
    }
}

학습 팁

values()는 호출 시마다 배열을 복사합니다. 자주 호출하면 List.of(values())로 캐시하세요.

주의할 점

열거형 생성자는 항상 private입니다. public으로 선언하면 컴파일 에러가 발생합니다.

자주 묻는 질문

열거형(Enum) 심화란 무엇인가요?

열거형에 필드, 메서드, 추상 메서드를 추가하는 고급 패턴입니다.

열거형(Enum) 심화 학습 시 주의할 점은 무엇인가요?

열거형 생성자는 항상 private 입니다. public 으로 선언하면 컴파일 에러가 발생합니다.