반응형
Java에서 열거형(Enum)은 한정된 값의 집합을 정의할 때 사용되는 특별한 데이터 타입입니다. 예를 들어, 요일, 상태(START, STOP), 방향(NORTH, SOUTH) 등과 같이 값이 고정된 데이터를 정의할 때 유용합니다. 이번 글에서는 Enum의 기본 개념과 활용 방법을 간단한 예제를 통해 알아보겠습니다. 😊
1. Enum이란?
Enum은 여러 개의 상수(Constant)를 묶어서 하나의 타입으로 정의할 수 있는 Java의 데이터 타입입니다.
- 값이 고정되고, 변하지 않는 경우 사용됩니다.
- 코드의 가독성과 안정성을 높이는 데 유용합니다.
- switch문이나 조건문에서 활용하기 좋습니다.
2. 코드 예제: 요일 Enum 정의 및 활용
(1) Enum 정의
Week라는 이름의 열거형(Enum)을 정의합니다.
public enum Week {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
}
(2) Enum 사용 코드
아래는 Week Enum을 활용하는 예제입니다.
public class EnumEx {
public static void main(String[] args) {
Week today = Week.WEDNESDAY; // Enum 값 할당
System.out.println(today); // 출력: WEDNESDAY
// Enum의 메서드 활용
System.out.printf("Today is %s(%d)%n",
today.name(), // Enum 이름 반환 (문자열)
today.ordinal()); // Enum의 순서 반환 (0부터 시작)
// 문자열로부터 Enum 객체 생성
String strWeek = "FRIDAY";
Week obj = Week.valueOf(strWeek); // "FRIDAY" → Week.FRIDAY로 변환
System.out.printf("obj is %s(%d)%n",
obj.name(),
obj.ordinal());
}
}
3. 실행 결과 분석
출력 결과
WEDNESDAY
Today is WEDNESDAY(3)
obj is FRIDAY(5)
코드 설명
- Enum 값 출력: Week.WEDNESDAY는 열거형 객체 중 하나로, System.out.println(today)를 통해 문자열로 출력됩니다.
- Enum 메서드 활용:
- name(): Enum 상수의 이름을 문자열로 반환.
- ordinal(): Enum 상수의 정의된 순서를 반환(0부터 시작).
- 문자열로 Enum 변환:
- Week.valueOf(strWeek): 문자열 "FRIDAY"를 Enum 상수 Week.FRIDAY로 변환합니다.
- Enum 상수는 대소문자를 구분하므로 정확히 입력해야 합니다.
4. Enum의 주요 메서드
1) name()
- Enum 상수의 이름을 반환합니다.
- 예: Week.WEDNESDAY.name() → "WEDNESDAY"
2) ordinal()
- Enum 상수의 순서를 반환합니다(0부터 시작).
- 예: Week.WEDNESDAY.ordinal() → 3
3) valueOf(String name)
- 문자열을 해당 Enum 상수로 변환합니다.
- 예: Week.valueOf("FRIDAY") → Week.FRIDAY
5. Enum의 활용 사례
(1) 요일 계산
Week today = Week.MONDAY;
if (today == Week.SATURDAY || today == Week.SUNDAY) {
System.out.println("오늘은 주말입니다!");
} else {
System.out.println("오늘은 평일입니다!");
}
(2) 상태 관리
Enum은 상태를 관리하거나 고정된 값으로 조건을 처리할 때 사용됩니다.
public enum State {
START,
STOP,
PAUSE
}
State currentState = State.START;
if (currentState == State.START) {
System.out.println("프로그램 실행 중...");
}
(3) switch문 활용
Enum은 switch문과 함께 사용하면 코드가 더욱 간결해집니다.
Week today = Week.TUESDAY;
switch (today) {
case MONDAY:
System.out.println("월요일입니다.");
break;
case TUESDAY:
System.out.println("화요일입니다.");
break;
default:
System.out.println("다른 요일입니다.");
}
6. Enum 사용 시 주의사항
- 값 고정: Enum은 값이 고정된 경우에만 사용합니다.
- 대소문자 구분: valueOf 메서드는 대소문자를 구분하므로 입력에 주의해야 합니다.
- 순번 사용 주의: ordinal() 값은 Enum 상수의 순서가 변경되면 바뀌기 때문에, 프로그램 로직에서 직접 사용하는 것은 권장하지 않습니다.
정리
- Enum은 값이 고정된 데이터를 표현하는 데 사용됩니다.
- 예: 요일, 상태, 방향 등.
- name()과 ordinal() 메서드로 Enum 상수의 이름과 순서를 확인할 수 있습니다.
- Enum은 switch문과 조건문에서 가독성을 높이고 안정적인 코드를 작성하는 데 유용합니다.

반응형
'개발 > JAVA' 카테고리의 다른 글
Java의 기본 클래스 Object: 객체의 기본 (2) | 2025.01.06 |
---|---|
Java 기초편 - 배열 정렬과 복사 (2) | 2025.01.04 |
Java 기초편- 배열(Array) : 1차원 배열과 다차원 배열, 그리고 복사 방법 정리 (2) | 2025.01.02 |
Java 논리 연산자와 비교 연산자 (3) | 2025.01.01 |
Java 삼항 연산자(조건 연산자) 쉽게 배우기 💻 (1) | 2024.12.31 |