JAVA · 객체지향
열거형에 메서드 추가
열거형 상수별로 다른 동작을 정의하는 패턴입니다.
객체지향중급enum메서드abstract전략패턴
핵심 설명
열거형 상수별로 다른 동작을 정의하는 패턴입니다.
Java code
enum Operation {
ADD("+") {
@Override
public double apply(double a, double b) { return a + b; }
},
SUB("-") {
@Override
public double apply(double a, double b) { return a - b; }
},
MUL("*") {
@Override
public double apply(double a, double b) { return a * b; }
},
DIV("/") {
@Override
public double apply(double a, double b) {
if (b == 0) throw new ArithmeticException("0 나누기");
return a / b;
}
};
private final String symbol;
Operation(String symbol) { this.symbol = symbol; }
public abstract double apply(double a, double b);
@Override
public String toString() { return symbol; }
}
class Main {
public static void main(String[] args) {
for (Operation op : Operation.values()) {
System.out.printf("10 %s 3 = %.1f%n",
op, op.apply(10, 3));
}
}
}학습 팁
열거형에 abstract 메서드를 선언하면 모든 상수가 반드시 구현해야 합니다. 새 상수 추가 시 구현 누락을 방지합니다.
주의할 점
열거형 상수 본문에서 다른 상수를 참조하면 초기화 순서 문제가 발생할 수 있습니다. 정적 필드로 분리하세요.
자주 묻는 질문
열거형에 메서드 추가란 무엇인가요?
열거형 상수별로 다른 동작을 정의하는 패턴입니다.
열거형에 메서드 추가 학습 시 주의할 점은 무엇인가요?
열거형 상수 본문에서 다른 상수를 참조하면 초기화 순서 문제가 발생할 수 있습니다. 정적 필드로 분리하세요.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.