[JAVA] enum 클래스
enum을 사용하는 이유를 정리하면 아래와 같다.
1. 열거체를 비교할 때 실제 값과 타입을 모두 체크한다.
2. 열거체의 상수값이 재정의 되더라도 다시 컴파일할 필요가 없다.
3. 코드가 단순해진다.
4. 인스턴스 생성과 상속을 방지한다.
5. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타낼 수 있다.
정의 및 사용 방법
enum 키워드를 사용하여 열거체를 정의한다.
//문법
enum 열거체이름 { 상수1이름, 상수2이름, ... }
//예제
enum Fruit { APPLE, BANANA, ORANGE, WATERMELON }
열거체를 사용 방법
//문법
열거체이름.상수이름
//예제
Fruit.APPLE
상숫 정의 및 추가
열거체의 첫 번째 상수 값은 0부터 설정되며 그 이후로 바로 앞의 상수값 보다 1만큼 증가되며 설정된다.
추가적으로 불규칙한 값을 상수값으로 설정하고 싶으면 상수의 이름 옆에 괄호(())을 추가하고 그 안에 원하는 상수값을 명시할 수 있다.
이때 주의할 점은 불규칙한 특정 값을 저장할 수 있는 인스턴스 변수와 생성자를 다음과 같이 별도로 추가해야만 한다.
//예시
enum Fruit {
APPLE(30), BANANA(10), ORANGE(22), WATERMELON(5);
private final int value;
Fruit(int value) { this.value = value; }
public int getValue() { return value; }
}
대표적인 Enum 메소드
static E values() 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함.
static E valueOf(String name) 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함.
protected void finalize() 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨.
String name() 해당 열거체 상수의 이름을 반환함.
int ordinal() 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함. 상수값 자체가 아니다.
댓글
댓글 쓰기