Enum (열거형)
- 관련성을 가진 상수들의 집합
- 상수의 클래스형 선언
① Enum을 사용하는 이유
- 허용 가능한 값을 제한할 수 있어 컴파일 시 예외 처리가 가능하다.
- 수정 시 변경 범위가 최소화된다.
- 코드의 단순성 및 가독성이 좋아진다.
- 인스턴스의 생성과 상속을 방지하여 상수값의 안정성이 보장된다.
② Enum 활용
[Example 01]
public enum Month {
JANUARY("1", "Winter"),
MARCH("3", "Spring"),
MAY("5", "Spring"),
JULY("7", "Summer");
private String monthNumber;
private String season;
Month(String monthNumber, String season) {
this.monthNumber = monthNumber;
this.season = season;
}
public String getMonthNumber() {
return monthNumber;
}
public String getSeason() {
return season;
}
}
public class Enum {
public static void main(String[] args) {
Month month = Month.JANUARY;
System.out.println(month.getMonthNumber());
System.out.println(month.getSeason());
for (Month value : Month.values()) {
System.out.print(value + " ");
}
System.out.println(Month.JANUARY.ordinal());
System.out.println(Month.MAY.ordinal());
System.out.println(Month.valueOf("JULY"));
}
}
[Example 01]
public enum Calculator {
ADD("더하기", (x, y) -> Double.valueOf(x + y)),
SUB("빼기", (x, y) -> Double.valueOf(x - y)),
MUL("곱하기", (x, y) -> Double.valueOf(x * y)),
DIV("나누기", (x, y) -> Double.valueOf(x / y));
private String calcName;
private BiFunction<Integer, Integer, Double> expression;
Calculator(String calcName, BiFunction<Integer, Integer, Double> expression) {
this.calcName = calcName;
this.expression = expression;
}
public double calculate(int x, int y) {
return expression.apply(x, y);
}
public String getCalcName() {
return calcName;
}
}
public class Enum {
public static void main(String[] args) {
CalculatorLambda calculatorLambda = CalculatorLambda.ADD;
System.out.println(calculatorLambda.getCalcName());
System.out.println(calculatorLambda.calculate(1, 5));
}
}
▷ 출처
https://devjanghwa.tistory.com/181
728x90
'Java' 카테고리의 다른 글
추상 클래스 (Abstract Class) (0) | 2024.07.01 |
---|---|
Serialization (직렬화) (0) | 2024.06.28 |
Generics (0) | 2024.06.25 |
JDBC (Java DataBase Connectivity) (0) | 2024.06.20 |
Java Collection Framework (2) (0) | 2024.06.18 |