Java ‐ ENUM(열거형) - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 타입 안전 열거형 패턴

  • 타입 안전 열거형 패턴을 사용하면 나열된 항목만 사용할 수 있다는 것이 핵심이다.
  • 타입 안전 열거형 패턴(Type-Safe Enum Pattern)의 장점
    • 타입 안정성 향상 : 정해진 객체만을 사용할 수 있기 때문에 잘못된 값을 입력하는 문제를 근본적으로 방지할 수 있다.
    • 데이터 일관성 : 정해진 객체만 사용하므로 데이터의 일관성이 보장된다.

📚 열거형 - Enum 타입

  • 자바는 타입 안전 열거형 패턴을 매우 편리하게 사용할 수 있는 열거형(Enum Type)을 제공한다.
  • Enumeration은 일련의 명명된 상수들의 집합을 정의하는 것을 말하며, 이러한 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.
public enum Grade {
	BASIC, 
	GOLD, 
        DIAMOND
}

📚 열거형 - 주요 메서드

  • values() : 모든 ENUM 상수를 포함하는 배열을 반환한다.
  • valueOf(String name) : 주어진 이름과 일치하는 ENUM 상수를 반환한다.
  • name() : ENUM 상수의 이름을 문자열로 반환한다.
  • ordinal() : ENUM 상수의 선언 순서(0부터 시작)를 반환한다.(사용 지양)
  • toString() : ENUM 상수의 이름을 문자열로 반환한다.
public class GradeMain {

	public static void main(String[] args) {

		// 모든 ENUM 반환
		Grade[] grades = Grade.values();
		for (Grade grade : grades) {
			System.out.println("grade.name = " + grade.name() + "ordinal = " + grade.ordinal());
		}

		// 입력받은 문자열을 ENUM으로 변환
		String input = "GOLD";
		Grade grade = Grade.valueOf(input);
		System.out.println("gold = " + grade);
	}
}
  • 열거형은 java.lang.Enum을 강제로 상속 받는다.
  • 열거형은 이미 java.lang.Enum을 상속 받았기 때문에 추가로 다른 클래스를 상속을 받을 수 없다.
  • 열거형은 인터페이스를 구현할 수 있다.
  • 열거형에 추상 메서드를 선언하고, 구현할 수 있다.