enum(열거형)은 Java에서 상수들의 집합을 나타내는 특수한 데이터 타입이다. 주로 상수 값을 그룹화할 때 사용되며, 값이 고정된 항목을 나타낼 때 유용하다. 예를 들어, 요일, 계절, 방향 등과 같은 제한된 값의 목록을 나타낼 때 적합하다.
enum의 개념enum은 클래스처럼 동작하지만, 객체를 생성할 수 없고 미리 정의된 상수들만 가질 수 있다.enum 타입의 인스턴스로 취급되며, 일반적으로 대문자로 작성한다.enum은 타입 안전성(type safety)을 제공하여 잘못된 값이 사용되는 것을 방지할 수 있다.enum 정의enum은 enum 키워드를 사용하여 정의한다.
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
위의 코드에서는 Day라는 enum을 정의하였고, 요일을 상수로 나타내고 있다.
enum 예제enum을 사용할 때는 그 값들을 참조할 수 있다. 예를 들어, 오늘이 MONDAY라면:
public class EnumExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
System.out.println("오늘은 " + today + "입니다.");
}
}
출력:
오늘은 MONDAY입니다.
enum에 메서드 추가enum은 클래스처럼 메서드를 가질 수 있다. 예를 들어, 각 요일에 대한 활동을 정의할 수 있다.
public enum Day {
MONDAY("회의"),
TUESDAY("프로젝트 작업"),
WEDNESDAY("미팅"),
THURSDAY("문서 작업"),
FRIDAY("팀 회식"),
SATURDAY("휴식"),
SUNDAY("휴식");
private String activity;
// 생성자
Day(String activity) {
this.activity = activity;
}
// 메서드
public String getActivity() {
return activity;
}
}
public class EnumExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
System.out.println("오늘은 " + today + "이고, 활동은 " + today.getActivity() + "입니다.");
}
}
출력:
오늘은 MONDAY이고, 활동은 회의입니다.
enum 선언: enum은 키워드 enum을 사용하여 정의한다. 이때 enum에 포함될 상수들은 대문자로 작성하는 것이 관례이다.enum 내에서 각 항목을 정의한다. 각 항목은 객체처럼 동작하는 상수이다.enum 값은 객체처럼 사용되며, 비교하거나 출력할 수 있다.enum은 클래스처럼 생성자, 필드, 메서드를 가질 수 있다. 이를 통해 enum 값마다 다른 기능을 부여할 수 있다.