Enum이란?
자바의 enum은 서로 연관된 상수들을 하나의 타입으로 묶을 수 있는 클래스를 말한다.
Enum 선언
typedef enum 열거형이름 {
값1, 값2, 값3 ...
}
// 예시
enum Direction {
EAST, WEST, SOUTH, NORTH
}
Enum 참조
열거타입 변수 = 열거타입.열거상수;
// 예시
Direction dir1 = Direction.EAST;
Direction dir2 = Direction.SOUTH;
Enum의 주요 메서드
| name() | 상수 이름(문자열) 반환 | dir1.name() → "EAST" |
| ordinal() | 열거 상수의 순서 (0부터 시작) | dir2.ordinal() → 2 |
| valueOf(String name) | 문자열을 enum 상수로 변환 | Direction.valueOf("WEST") → Direction.WEST |
| values() | 모든 상수를 배열로 반환 | Direction[] dirs = Direction.values(); |
Enum 사용 예시
enum Direction {
EAST, WEST, SOUTH, NORTH
}
public static void main(String[] args) {
Direction dir = Direction.EAST;
switch (dir) {
case EAST:
System.out.println("동쪽입니다.");
break;
case WEST:
System.out.println("서쪽입니다.");
break;
case SOUTH:
System.out.println("남쪽입니다.");
break;
case NORTH:
System.out.println("북쪽입니다.");
break;
}
}
switch-case문에서 enum 상수를 사용할 수 있다. 이유는 enum 상수는 컴파일 시점에 고정된 상수이기 때문이다.
Enum의 장점
- 가독성 향상: 의미 있는 이름으로 값 표현 가능 (EAST, WEST 등)
- 타입 안정성: 잘못된 값 대입 시 컴파일 에러 발생
- switch문 사용 가능: enum 상수는 컴파일 시점 상수라 case에 사용 가능
- 확장성: 필드, 생성자, 메서드 정의 가능 → 속성 추가에 유리
Enum에 속성 부여
public enum Direction {
EAST("동쪽"),
WEST("서쪽"),
SOUTH("남쪽"),
NORTH("북쪽");
private final String label;
Direction(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
위와 같이 enum 상수에 속성을 부여해 두면, 각 상수마다 고유의 값을 저장할 수 있다. 이 속성은 getLabel() 메서드를 통해 참조할 수 있다.
public class DirectionExample {
public static void main(String[] args) {
Direction dir = Direction.EAST;
System.out.println("선택한 방향: " + dir.getLabel()); //출력: "선택한 방향: 동쪽"
}
}'Java' 카테고리의 다른 글
| [Java] 컬렉션 / 제네릭 (0) | 2025.04.30 |
|---|---|
| [Java] 명명 규칙 (0) | 2025.04.23 |
| [Java] Optional (0) | 2025.04.18 |
| [Java] 예외와 예외 처리 (1) | 2025.04.17 |
| [Java] JVM 메모리 (0) | 2025.04.17 |