728x90
열거형 클래스는 JDK 1.5이상의 버전에서만 사용된다.
열거형 클래스의 특징을 말하자면 서로 연관성이 있는 상수들의 집합을 의미한다.
이전의 클래스는 public static final을 통해 상수를 처리했지만
상수명이 중복될 수 있다는 단점이 있었다.
이러한 단점은 Interface를 활용하여 상수를 구분함으로써 해결 할 수 있지만
타입 안정성 문제 때문에 완전한 해결방법이 되지 못했다.
하지만 Enum은 이러한 문제를 효과적으로 처리 할 수 있다.
Enum의 정의
enum Man{ // enum + 열거형 이름 이름
상수명 1, 상수명 2, 상수명3
}
enum에 정의하는 방법은 간단하다. 클래스에 static 변를 참조하듯이 열거형 이름과 상수명을 작성하면 된다.
enum은 필드를 선언할 수 있으며 생성자를 정의하는 경우 private으로 선언해야한다.
enum정보는 컴파일에 고정되어 있어야 하기 때문이다.
또한
switch문에서도 enum을 활용할 수 있다.
switch문에서의 enum
이와 같이 enum을 사용하면 상수의 중복을 피하고 타입 안정성을 보장할 수 있다.
enum Week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}
public class Main {
public static void main(String[] args) {
Week week = Week.Sunday;
switch (week) {
case Sunday:
System.out.println("일요일");
break;
case Monday:
System.out.println("월요일");
break;
case Tuesday:
System.out.println("화요일");
break;
case Wednesday:
System.out.println("수요일");
break;
case Thursday:
System.out.println("목요일");
break;
case Friday:
System.out.println("금요일");
break;
case Saturday:
System.out.println("토요일");
break;
}
}
}
enum의 사용
switch문에서 활용한 것과 같이 enum의 사용은 enum이름.상수명이다.
또한, 열거형에서 사용 할 수 있는 메서드는 java.lang.Enum에 정의되어 있는데
대표적인 메서드는 다음과 같다.
'Back-End > Java' 카테고리의 다른 글
[Java /자바] 예외 처리(Exception Handling) (2) | 2022.09.13 |
---|---|
[Java /자바] 제네릭(Generic) (0) | 2022.09.13 |
[Java /자바] 인터페이스(Interface) (0) | 2022.09.13 |
[Java /자바] 추상화와 추상 클래스 (0) | 2022.09.13 |
[자바 / Java] instanceof 연산자 (0) | 2022.09.08 |