반응형
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
반응형
'Backend > Java (Spring)' 카테고리의 다른 글
[JAVA] 생성자(Contructor)와 New 키워드 (0) | 2021.09.19 |
---|---|
[JAVA] 래퍼 클래스와 박싱, 언박싱 (0) | 2021.09.18 |
[JAVA] 객체지향의 5가지 원칙 (SOLID 원칙) (0) | 2021.09.16 |
[JAVA] Gson Date format 변경하기 (0) | 2021.07.20 |
[Guide]스프링 네이밍 컨벤션(Coding convention) (0) | 2021.07.15 |
최근댓글