반응형

 

 

1. Enum(enumerate) 클래스

웹 개발을 하다보면 여러 페이지에서 공통적으로 사용하는 데이터를 다루게 되는 경우가 많다.

 

이러한 데이터를 열거형으로 묶어주면 편리하게 관리할 수 있고, 이것을 구현한 것을 Enum 클래스라고한다.

 

C, C++와 달리 JAVA에서는 JDK 1.5가 되어서야 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었다.

 

JAVA Enum클래스의 장점은 아래와 같다.

 

▶ 열거체를 비교할 때 실제 값뿐만 아니라 타입도 체크

 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없다

 

 

 

2. Enum 클래스 선언 방법

// 클래스 외부에서 선언
enum Season { 
    SPRING, 
    SUMMER, 
    FALL, 
    WINTER 
}

// 클래스 내부에서 선언
public class EnumExample {
    
    public enum Season {
        SPRING, 
        SUMMER, 
        FALL, 
        WINTER
    }
}

 

 

 

3. Enum 클래스 사용 방법

enum Season {
    SPRING, 
    SUMMER, 
    FALL, 
    WINTER
}

public class EnumExample {

    public String name;
    public String likeSeason;
    public Season hateSeason;

    public static void main(String[] args) {
        EnumExample person = new EnumExample();
        
        person.name = "Jinny";
        person.likeSeason = Season.SUMMER;
        person.hateSeason = Season.WINTER;
        
        System.out.println(person.name); // "Jinny"
        System.out.printf("%s, %s", person.likeSeason, person.hateSeason);
        //" WINTER, SUMMER"
    }

}

 

 

 

4. 열거체 메서드

Enum 클래스의 메소드는 다음과 같다.

메소드 설명
String name() 해당 열거체 상수의 이름을 반환
static E values() 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함.
static E valueOf(String name) 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함.
int ordinal() 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함.
protected void finalize() 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨.

 

4-1. name()

열거 객체의 문자열 리턴

Season season = Season.SPRING; 
String name = season.name(); // "SPRING"

 

 

4-2. values()

열거 타입의 모든 열거객체를 배열로 만들어 리턴

enum Season { 
    SPRING, 
    SUMMER, 
    FALL, 
    WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        
        // enhanced for loop
        for (Season season : Season.values()) {
            System.out.println(season); // SPRING, SUMMER, FALL, WINTER 차례로 출력 
        }
    }
}

 

 

4-3. valueOf()

인자로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴

enum Season { 
    SPRING, 
    SUMMER, 
    FALL, 
    WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        Season season = Season.valueOf("WINTER");
        System.out.println(season);
    }
}

 

 

4-4. ordinal()

전체 열거 객체 중 몇 번째의 객체인지 리턴, 인덱스는 배열과 마찬가지로 0부터 시작

enum Season { 
    SPRING, 
    SUMMER, 
    FALL, 
    WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season.ordinal()); // 3
    }
}

 

 

4-5. compareTo()

매개값으로 주어진 열거 객체를 기준으로 전 후로 몇 번째 위치하는지 비교

Season season1 = Season.SPRING; // 0 
Season season2 = Season.WINTER; // 3 
int result1 = season1.compareTo(season2); // -3 
int result2 = season2.compareTo(season1); // 3

 

 

 

 

 

# 참고사이트

http://tcpschool.com/java/java_api_enum

 

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기