[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부터 시작)를 반환함. 상수값 자체가 아니다.








댓글