개발/자바
[자바/java] enum 열거형
Walon_
2021. 3. 29. 17:58
- 상수 열거형 클래스
- 다양한 메소드 지원, 소스간결화, 뚜렷한 목적성 등등
- 클래스 내부, 외부, 별도 정의 모두 가능
public enum BoardType {
notice, free;
}
public void main(String args[]){
BoardType type = BoardType.free;
System.out.println(type);
}
-> 기본적인 사용법, 당연히 정의해 놓은 notice나 free만 가능하다
public enum BoardType {
notice("공지사항"), //생성자 스스로 호출
free("자유게시판");
private String value;
BoardType(String value){
this.value = value;
}
public String getValue(){
return this.value;
}
}
-> 클래스이니 생성자도 사용가능하다. (private 만 가능)
free("공지사항", 1) 이런식으로 2개 이상도 가능하다. 당연히 생성자의 매개변수도 맞춰줘야 한다.
Static Methods |
valueOf(String arg) | String 값을 enum에서 가져옴. 값이 없으면 예외 발생 |
valueOf(Class<T> class, String arg) | 넘겨받은 class에서 String찾아, enum에 가져옴. valueOf(String arg)는 내부적으로 자기자신 Class를 가져옴. |
|
values() | eum의 요소들을 순서대로 enum타입의 배열로 리턴. (ENUM$VALUES)의 카피임으로 자주 호출하지 않길 |
|
Static이 아닌 Methods |
name() | 호출된 값의 이름을 String으로 리턴. |
ordinal() | 해당 값이 enum에 정의된 순서를 리턴. | |
compareTo(E o) | enum과 지정된 객체의 순서를 비교. 지정된 객체보다 작은 경우 음의 정수, 동일하면 0, 크면 양의 정수 리턴 |
|
equals(Object other) | 지정된 객체가 enum 정수와 같은경우, true를 리턴. |