Enumeration

조상원·2025년 8월 2일

JAVA

목록 보기
3/34
  • 한정된 값만을 갖는 데이터 타입
  • 열거 타입은 몇 개의 열거 상수(Enumeration Constant) 중에서 하나의 상수를 저장하는 데이터 타입

열거 타입 선언

  • 열거 타입은 클래스와 동일하게 소스 파일(.java)을 생성
  • 열거 상수는 모두 대문자로 작성
// public enum은 열거 타입을 선언하기 위한 키워드
// 열거 타입의 이름은 소스 파일명과 동일해야한다
public enum Week {
   MONDAY, 
   TUESDAY, 
   WEDNESDAY,
   THURSDAY,
   FRIDAY,
   SATURDAY,
   SUNDAY
}

열거 타입 변수

열거 타입도 하나의 데이터 타입이므로 변수를 선언하고 사용

Week today;
  • 선언된 열거 타입 변수에 열거 상수를 저장이 가능하다
  • 열거 상수는 단독으로 사용할 수 없고 반드시 열거 타입.열거 상수로 사용
Week today = Week.MONDAY;

열거 타입 메소드

  • name() 메소드 : 열거 상수가 가지고 있는 문자열을 반환
  • ordinal() 메소드 : 전체 열거 상수 중 0부터 시작하여 몇 번째 열거 상수인지 정숫값을 반환
  • equals() 메소드 : 매개값으로 전달되는 열거 상수와 동일한 열거 상수인지 확인 후 true or false를 반환
  • compareTo() 메소드 : 매개값으로 주어진 열거 상수를 기준으로 전후로 몇 번째 위치하는 정숫값을 반환
System.out.println(today.name());
System.out.println(today.ordinal());
System.out.println(today.equals(Week.SUNDAY));
System.out.println(today.compareTo(Week.SUNDAY));

열거 타입에 속성 추가하기

  • 열거 상수에 다른 속성을 추가 가능
  • 열거 상수의 괄호()를 넣고 추가로 할 속성 기입
  • 열거 타입에 필드를 설정하고 Getter를 통해 읽어온다
public enum Week {
  MONDAY("월요일", "월", 1),
  TUESDAY("화요일", "화", 2),
  WEDNESDAY("수요일", "수", 3),
  THURSDAY("목요일", "목", 4),
  FRIDAY("금요일", "금", 5),
  SATURDAY("토요일", "토", 6),
  SUNDAY("일요일", "일", 7);

  private final String name;
  private final String shortName;
  private final int value;

//생성자
  // 열거 타입의 생성자는 반드시 private으로 선언
  private Week(String name, int value) {
      this.name = name;
      this.value = value;
  }

//Getter
  // 열거 타입의 name 값을 읽어오는 메소드
  public String getName() {
      return name;
  }
  
  // 열거 타입의 shortName 값을 읽어오는 메소드
  public String getShortName() {
        return shortName;
    }
    
  // 열거 타입의 value 값을 읽어오는 메소드
  public int getValue() {
      return value;
  }
}

0개의 댓글