Computer Science/Programming Language

[JAVA] 열거 객체의 메소드

BS Kwak 2020. 10. 12. 01:33

열거 객체의 메소드

메소드 : java.lang.Enum 클래스에 선언된 메소드

- 모든 열거 타입은 컴파일 시에 Enum 클래스를 상속하게 되어있음

리턴타입 메소드(매개 변수) 설명
String name( ) 열거 객체의 문자열을 리턴
int ordinal( ) 열거 객체의 순번(0부터 시작)을 리턴
int compareTo( ) 열거 객체를 비교해서 순번 차이를 리턴
열거 타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴
열거 배열 values( ) 모든 열거 객체들을 배열로 리턴

 

name( ) 메소드

- 열거 객체가 가지고 있는 문자열 리턴 (문자열 : 열거타입을 정의할 때 사용한 상수 이름과 동일)

Week today = Week.SUNDAY;
String name = today.name();

today가 참조하는 열거 객체에서 name()메소드를 호출하여 문자열을 얻어냄

name()메소드는 얻어낸 문자열인 "SUNDAY"를 리턴하고 name에 저장함

 

ordinal( ) 메소드

- 전체 열거 객체 중 몇번 째 열거 객체인지 리턴

- 열거 타입을 정의할 때 주어진 순번 리턴(0부터)

Week today = Week.SUNDAY;
int ordinal = today.ordinal();

MONDAY(0) TUESDAY(1) WEDNESDAY(2) ... SUNDAY(6) 

today.ordinal()은 6을 리턴해서 ordinal에 저장함

 

compareTo( ) 메소드 ( A.compareTo(B) )

- 매개값으로 주어진 열거 객체(B)를 기준으로 전후로 몇 번째 위치하는 지 비교 

- 열거 객체(A)가 매개값의 열거 객체(B)보다 앞이면 (-) 

- 열거 객체(A)가 매개값의 열거 객체(B)보다 뒤면 (+)

Week day1 = Week.MODNAY;
Week day2 = Week.WEDNESDAY;
int result1 = day1.compareTo(day2);

day1.compareTo(day2) : day2(WEDNESDAY : 2)를 기준으로 day1(MONDAY : 0)의 상대적 위치(-2)를 리턴

 

valueOf( ) 메소드 

- 매개값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체 리턴 

(외부로부터 문자열을 입력받아 열거 객체로 변환할 때 유용하게 사용)

Week weekday = Week.valueOf("SATURDAY");

위의 코드의 경우, weekday 변수는 Week.SATURDAY 열거 객체 참조하게 됨

 

values( ) 메소드

- 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴

Week[] days = Week.values();
for(Week day : days){
	System.out.println(day);
}

Week열거 타입의 모든 열거 객체들을 배열로 만들어 각 원소 출력

배열의 인덱스 == 열거 객체의 순번

각 인덱스 값 == 해당 순번의 열거 객체의 번지

 

 

 

>>1. 열거타입이란?

bskwak.tistory.com/165

 

[JAVA] 열거 (enumeration)타입이란?

열거(enumeration)타입이란? 한정된 값만을 갖는 데이터 타입 예를 들면 (계절 : 봄,여름,가을,겨울) (요일 : 월,화,수,목,금,토,일) 몇 개의 열거 상수(enumeration constant) 중에서 하나의 상수를 저장하는

bskwak.tistory.com

 

>>2. 열거상수, 열거타입변수, 객체?

bskwak.tistory.com/167

 

[JAVA] 열거상수, 열거 타입변수, 객체 ?

열거타입이란? bskwak.tistory.com/165 [JAVA] 열거 (enumeration)타입이란? 열거(enumeration)타입이란? 한정된 값만을 갖는 데이터 타입 예를 들면 (계절 : 봄,여름,가을,겨울) (요일 : 월,화,수,목,금,토,일)..

bskwak.tistory.com