열거 객체의 메소드
메소드 : 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. 열거타입이란?
>>2. 열거상수, 열거타입변수, 객체?
'Programming Language > Java' 카테고리의 다른 글
[JAVA] 클래스(class) 구성 멤버 (0) | 2020.10.12 |
---|---|
[JAVA] 객체지향프로그래밍(JAVA) 기본 (0) | 2020.10.12 |
[JAVA] 열거상수, 열거 타입변수, 객체 ? (0) | 2020.10.10 |
[JAVA] 배열 복사 ( System.arraycopy() 메소드 ) (0) | 2020.10.10 |
[JAVA] 열거 (enumeration)타입이란? (0) | 2020.10.10 |