열거 타입

Bummy·2023년 6월 28일
0

JAVA

목록 보기
4/11

열거 타입

  • 한정된 값만을 갖는 데이터 타입이 열거 타입이다.
  • 열거 타입은 몇 개의 열거 상수 중에서 하나의 상수를 저장하는 데이터 타입이다.

열거 타입 선언

  • 열거 타입을 선언하기 위해서는 먼저 열거 타입의 이름을 정하고 열거 타입의 이름으로 소스파일을 생성해야한다.
Week.java
MemberGrade.java
ProductKind.java

열거 타입 선언은 public enum으로 선언하면 된다.

public enum 열거타입이름 { }

열거 타입 변수 선언은 다음과 같다.

Week today;
Week reservationDay;

열거 타입 변수를 선언했다면 다음과 같이 열거 상수를 저장할 수 있다.

열거타입 변수 = 열거타입.열거상수;

열거 타입 변수는 null 값을 저장할 수 있다.

Week birthday = null;
today == Week.SUNDAY //true
  • 열거 타입 변수 today는 스택 영역에 생성된다.
  • today에 저장되는 값은 Week.SUNDAY 열거 상수가 참조하는 객체의 번지이다.

열거 객체의 메소드

name() 메소드

  • 열거 객체가 가지고 있는 문자열을 리턴한다.
Week today = Week.SUNDAY;
String name = today.name();

ordinal() 메소드

  • 전체 열거 객체 중 몇 번째 열거 객체인지 알려준다.
  • 배열과 동일하게 0부터 시작한다.

compareTo() 메소드

  • 매개값으로 주어진 열거 객체를 기준으로 전후로 몇 번째 위치하는지 비교한다.
  • 열거 객체가 매개값의 열거 객체보다 순번이 빠르다면 음수가 나온다.
  • 열거 객체가 매개값의 열거 객체보다 순번이 늦다면 양수가 리턴된다.
Week day1 = Week.MONDAY;
Week day2 = Week.WEDNESDAY;
int result1 = day1.compareTo(day2); //-2
int result2 = day2.compareTo(day1); //2

valueOf() 메소드

  • 매개값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴한다.
  • 외부로부터문자열을 입력받아 열거 객체로 변환할 때 유용하게 사용할 수 있다.
Week weekDay = Week.valueOf("SATURDAY");

values() 메소드

  • 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴한다.
Week[] days = Week.values();
for(Week day : days){
	System.out.println(day);
}

0개의 댓글