-
[Java] Enum 클래스Study/Java 2021. 5. 16. 17:06
열거체 (enumeration type)
java 언어 열거 유형의 공통 기본 클래스
집합의 유형 또는 맵의 키 유형으로 열거 유형을 사용가능

E: 열거형 하위 클래스
java 1.5 이후
Enum 클래스는 모든 자바 열거체의 공동된 조상 클래스.
Enum 클래스에는 열거체를 조작하기 위한 다양한 메소드가 포함되어 있음
장점
1. 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크 가능
2. 열거체의 상수값이 재정의되더라도 다시 컴파일할 필요가 없음
사용법
클래스 생성
1) 우클릭 > New > Enum
2) 우클릭 > New > Other... > Enum

문법
// 선언 enum 열거체이름 { 상수1이름 , 상수2이름 , ... } // 사용법 열거체이름.상수이름예시
// Enum 클래스 생성 public enum Fruit { APPLE , BANANA , WATERMELON } public class EnumClassMain { public static void main(String[] args) { // 호출 System.out.println(Fruit.WATERMELON); } }
열거체의 상숫값 정의
기본으로 정의된 열거체는 첫번째 상숫값은 0부터 설정되며, 1씩 증가되며 설정
불규칙한 값을 상수값으로 설정하고 싶을 경우 상수의 이름 옆에 괄호(())를 추가하고, 그 안에 상수값을 명시할 수 있음
불규칙한 특정값을 저장할 수 있는 인스턴스 변수와 생성자를 별도로 추가해야함
예시
public enum Color { RED(1) , BLUE(4) , GREEN(3) , YELLOW(2) , BLACK(5); private final int value; Color(int value) { this.value = value; } public int getValue() { return value; } }
values() 메소드
해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환
자바의 모든 열거체에 컴파일러가 자동으로 추가해주는 메소드
문법
static E vlaues()예시
public enum Fruit { APPLE , BANANA , WATERMELON } public class EnumClassMain { public static void main(String[] args) { Fruit[] arr = Fruit.values(); for (Fruit one : arr) { System.out.println(one); } } }실행결과
APPLE
BANANA
WATERMELON
valueOf() 메소드
전달된 문자열과 일치하는 해당 열거체의 상수 반환
문법
static E valueOf(String name)예시
public enum Fruit { APPLE , BANANA , WATERMELON } public class EnumClassMain { public static void main(String[] args) { Fruit fruit = Fruit.valueOf("APPLE"); System.out.println(fruit); } }실행 결과
APPLE
ordinal() 메소드
해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환
이때 반환되는 값은 열거체 정의에서 해당 열거체 상수가 정의된 순서이며 상숫값 자체가 아님!
문법
int ordinal()public enum Color { RED(1) , BLUE(4) , GREEN(3) , YELLOW(2) , BLACK(5); private final int value; Color(int value) { this.value = value; } public int getValue() { return value; } } public class EnumClassMain { public static void main(String[] args) { int index = Color.RED.ordinal(); System.out.println(index); System.out.println(Color.RED.getValue()); // 지정해둔 상수값 호출 방법 } }실행 결과
0
열거체 상수가 정의된 순서이므로 상숫값 1이 아닌 0이 반환됨.
name() 메소드
해당 열거체 상수의 이름 반환
public enum Fruit { APPLE , BANANA , WATERMELON } public class EnumClassMain { public static void main(String[] args) { String name = Fruit.APPLE.name(); System.out.println(name); } }실행 결과
APPLE
'Study > Java' 카테고리의 다른 글
[Java] 추상클래스(Abstract class) (2) 2021.04.25 [MyBatis] 동적 쿼리 trim 사용방법 (2) 2021.01.04 [Maven] Eclipse에서 Maven 프로젝트 생성 방법 (0) 2021.01.02 [MyBatis] Oracle 부적합한 열유형 null 처리방법 (0) 2020.12.31 [MyBatis] 부등호, 비교연산자(<, >, <=, >=, &) 사용 방법 (2) 2020.12.24