열거 타입(Enum)이란?
열거 타입(Enum)은 여러 개의 상수들을 한 곳에 모아 정의하고 사용할 수 있는 자료형입니다. 자바에서는 JDK 1.5부터 열거 타입이 도입되었으며, C# 등의 다른 언어에서도 지원하고 있습니다. 열거 타입은 주로 서로 연관된 상수들을 그룹화하여 사용할 때 유용하게 사용됩니다.
열거 타입은 다음과 같은 특징을 가지고 있습니다.
- 여러 개의 상수 값들을 한 곳에 모아 정의할 수 있습니다.
- 한 가지 타입으로 여러 개의 상수를 관리할 수 있습니다.
- 상수 값들은 유일하며, 서로 비교할 수 있습니다.
열거 타입의 선언과 사용
자바에서 열거 타입은 enum
키워드를 사용하여 선언합니다. 열거 타입의 구성원은 해당 타입의 상수들 뿐이며, 각 상수 값은 열거 타입의 인스턴스입니다. 열거 타입은 클래스와 마찬가지로 필드, 생성자, 메소드 등을 가질 수 있습니다.
다음은 열거 타입의 선언과 사용 예제입니다.
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class EnumExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
System.out.println("Today is " + today); // Today is MONDAY
if (today == Day.SATURDAY || today == Day.SUNDAY) {
System.out.println("It's the weekend!");
} else {
System.out.println("It's a weekday!");
}
}
}
위 예제는 요일을 나타내는 열거 타입 Day
를 선언하고 사용하는 예제입니다. Day
열거 타입의 상수 값들은 SUNDAY, MONDAY, TUESDAY, ..., SATURDAY로 구성되어 있습니다. Day
타입의 변수 today에 Day.MONDAY
를 대입하여 오늘의 요일을 표현하였습니다. today
와 Day.SATURDAY
또는 Day.SUNDAY
를 비교하여 주말인지 평일인지 출력하는 예제입니다.
열거 타입의 메소드
열거 타입은 메소드를 가질 수 있으며, 각 상수 값을 사용하여 메소드 호출이 가능합니다. 열거 타입의 메소드는 다음과 같은 형태로 정의됩니다.
enum EnumName {
CONSTANT1(value1),
CONSTANT2(value2),
...
ReturnType methodName(parameter) {
// 메소드 구현
}
}
다음은 열거 타입의 메소드 사용 예제입니다.
enum Currency {
KRW("Korean won", "₩"),
USD("United States dollar", "$"),
JPY("Japanese yen", "¥"),
EUR("Euro", "€"),
GBP("British pound", "£");
private final String fullName;
private final String symbol;
Currency(String fullName, String symbol) {
this.fullName = fullName;
this.symbol = symbol;
}
public String getFullName() {
return fullName;
}
public String getSymbol() {
return symbol;
}
}
public class EnumMethodExample {
public static void main(String[] args) {
Currency krw = Currency.KRW;
System.out.println(krw.getFullName()); // Korean won
System.out.println(krw.getSymbol()); // ₩
}
}
위 예제는 통화를 나타내는 열거 타입 Currency
를 선언하고, 열거 타입 내부에 getFullName()
과 getSymbol()
이라는 메소드를 추가한 예제입니다. 각 상수 값들은 금액의 통화명과 심볼로 구성되어 있으며, 생성자를 통해 초기값을 할당합니다. getFullName()
과 getSymbol()
메소드는 해당 상수의 멤버 필드 값을 반환합니다.
열거 타입의 활용 예제
열거 타입은 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어 다음과 같은 상황에서 열거 타입을 사용할 수 있습니다.
- 요일, 월, 계절 등과 같이 고정된 값들을 나타내는 경우
- 상태 값들을 표현하는 경우 (예: 주문 상태 - 주문 중, 결제 완료, 배송 완료 등)
- 선택 가능한 옵션을 지정하는 경우 (예: 사용자의 성별, 주문 수량 등)
- 기타 상태나 타입을 구분하는 경우
마무리
이번 포스팅에서는 열거 타입(Enum)의 사용법과 예제에 대해 알아보았습니다. 열거 타입은 여러 개의 상수 값을 한 곳에 모아 정의하고 사용할 수 있는 자료형으로, 주로 서로 연관된 상수들을 그룹화하여 사용할 때 유용하게 사용됩니다. 열거 타입은 클래스와 유사하게 필드, 생성자, 메소드 등을 가질 수 있으며, 각 상수 값들이 해당 타입의 인스턴스입니다. 이를 통해 상수 값을 사용하여 메소드 호출이 가능한 등 다양한 기능을 구현할 수 있습니다. 열거 타입은 요일, 상태 값, 선택 가능한 옵션 등 다양한 상황에서 활용될 수 있으며, 코드의 가독성과 유지 보수성을 높여줍니다.
댓글