해당 포스팅은 https://mine-it-record.tistory.com/204 를 참고하였습니다
Q . enum class 란?
enumeration(열거형) type의 class형으로 보이게 상수를 선언
보통 밀접한 관계의 상수들을 enum에 모아서 정의한다
# 1. enum 의 특징
- 열거형(enumeration)으로 선언 순서대로 0부터 index값을 갖게됨
- 모두 대문자로 선언
- 세미콜론(;)을 사용하지 않으나, 상수와 다른 값을 연결시킬 때 마지막에 세미콜론(;)
# 2. enum 의 선언
- java 파일 선언
- 클래스 내부, 외부 선언
문법 : enum 열거체 이름 { 상수1, 상수2, ... } 코드 : enum Color { RED, PINK, BLUE, WHITE } 사용법 : Color.BLUE |
# 3. enum 의 메소드()
| Static | valueOf(String arg) | String 값을 enum에서 가져온다. 값이 없으면 Exception 발생 |
| valueOf(Class<T> class, String arg) | 넘겨받은 class에서 String을 찾아, enum에서 가져온다. valueOf(String arg)는 내부적으로 자기 자신의 class를 가져오는 것이다. | |
| values() | enum의 요소들을 순서대로 enum 타입의 배열로 리턴한다. ENUM$VALUES의 카피이므로, 너무 자주 호출하는 것은 좋지 않음 |
|
| Static X | name() | 호출된 값의 이름을 String으로 리턴한다. |
| ordinal() | 해당 값이 enum에 정의된 순서를 리턴한다. (index 값 리턴) | |
| compareTo(E o) | 이 enum과 지정된 객체의 순서를 비교한다. 지정된 객체보다 작은 경우 음의 정수, 동일하면 0, 크면 양의 정수를 반환한다. | |
| equals(Object other) | 지정된 객체가 이 enum 정수와 같은 경우, true를 반환한다. |
- 주로 valueOf, values(), ordinal() 을 많이 쓴다고 한다
# 4. enum 의 예제
1. enum 선언
- 상수와 다른 값을 연결시키려면 리턴 함수가 선언되어있어야한다
Color.java
public enum Color {
RED("빨강"),
PINK("분홍"),
BLUE("파랑"),
WHITE("하얀");
private final String value;
Color(String value){
this.value = value;
}
public String getValue(){
return value;
}
}
2. enum 상수와 연결된 값 가져오기 ( for 문 )
- 상수와 다른 값을 연결시키려면 리턴 함수가 선언되어있어야한다
TestEnum.java
public class TestEnum {
public static void main(String[] args) {
for(Color color : Color.values()){
System.out.println(color.getValue()); // 빨강,분홍,파란,하얀
}
System.out.println(Color.BLUE.getValue()); // 파란
}
}
3. enum 선언된 상수 모두와 index값 ( for 문 )
values() : enum에 선언된 상수를 전부 가져온다. (예제 출력을 위해 for문에 사용)
ordinal() : 해당 상수의 index값을 출력한다.
TestEnum.java
public class TestEnum {
public static void main(String[] args) {
for(Color color : Color.values()){
System.out.println(color); // RED,PINK,BLUE,WHITE
}
System.out.println(Color.BLUE.ordinal()); //2
}
}
4. enum 선언된 상수 모두와 index값 ( for 문 )
values() : enum에 선언된 상수를 전부 가져온다. (예제 출력을 위해 for문에 사용)
ordinal() : 해당 상수의 index값을 출력한다.
TestEnum.java
public class TestEnum {
enum Color { RED, PINK, BLUE, WHITE }
public static void main(String[] args) {
int test = 1;
if(test == 1){
switchFt(Color.WHITE);
}...
public static void switchFt(Color color){
switch(color){
case RED :
System.out.println("RED 입니다.");
break;
case PINK :
System.out.println("PINK 입니다.");
break;
case BLUE :
System.out.println("BLUE 입니다.");
break;
case WHITE :
System.out.println("WHITE 입니다.");
break;
}
}
}
오케이. 열심히 공부했다...
끝!
'DEV Heart' 카테고리의 다른 글
| URL Mapping / 경로 지정방식 (0) | 2021.10.08 |
|---|---|
| URL Mapping (0) | 2021.10.06 |
| [MVC2 게시판 만들기 ] Alert 추가 중 발생한 문제들 해결하기 (0) | 2021.09.14 |
| JAVA 예약어 [ this ] (0) | 2021.09.13 |
| [ MVC 1 게시판 ] #3 상세 내용 보기(content) (0) | 2021.09.08 |