반응형
자바 - enum 사용법 (열거형, 열거타입)
열거형 enum은 상수를 의미별로 함께 묶어서 사용하고자 할 때 주로 사용됩니다. 예를들면 일, 월, 화, 수, 목, 금, 토와 같이 요일을 하나로 묶어 관리할 수 있으며, 데이터 값의 의미를 명확하게 전달할 수 있습니다. 여기서는 열거형 enum의 장점, 선언방법, 메소드 및 사용방법에 대해서 예제와 함께 알아보도록 하겠습니다.
목차
- enum이란?
- enum의 장점
- enum 선언방법
- enum 메소드
- enum 사용예제
1. enum이란?
열거형 enum은 상수로 구성된 특별한 클래스입니다. 클래스처럼 변수와 메소드를 가질 수 있지만, 상속이나 인스턴스를 생성할 수는 없으며, enum 값은 상수로 public, static, final 속성을 가지고 있어 변경될 수 없습니다.
2. enum의 장점
- 데이터 값의 의미를 명확히 알 수 있습니다.
- 컴파일 시 데이터 타입 및 유효성 체크를 할 수 있습니다.
3. enum 선언방법
열거형은 enum 키워드를 사용하여 정의하며, 열거형의 이름은 보통 클래스명과 같이 첫 글자를 대문자로 시작합니다. { } 안에 열거값은 , 로 구분하며 상수와 같이 대문자를 사용합니다.
열거형의 선언은 클래스 안에서도 선언할 수 있고, 클래스 밖에서도 선언할 수 있습니다.
enum Week { SUN, MON, TUE, WED, THU, FRI, SAT }
4. enum 메소드
- valueOf(String str) : 문자열 str과 일치하는 열거값을 반환합니다.
- values( ) : 열거값 전부를 배열로 반환합니다.
- ordinal( ) : 열거값의 순서를 반환합니다.
5. enum 사용예제
(1) enum 정의 및 실행
enum Week1 {
SUN, MON, TUE, WED, THU, FRI, SAT
}
enum Week2 {
SUN("일"), MON("월"), TUE("화"), WED("수"), THU("목"), FRI("금"), SAT("토");
final private String day;
Week2(String day) {
this.day = day;
}
String getDay() {
return day;
}
}
public class HelloWorld {
public static void main(String[] args) {
String s = "MON";
Week1 w1 = Week1.SUN;
Week2 w2 = Week2.valueOf(s);
System.out.println(w1);
System.out.println(w2);
Week1[] arrayWeek1 = Week1.values();
for (Week1 w: arrayWeek1) {
switch (w) {
case SAT:
System.out.print("토요일" + ", "); break;
case SUN:
System.out.print("일요일" + ", "); break;
default:
System.out.print("평일 " + ", "); break;
}
}
Week2[] arrayWeek2 = Week2.values();
for (Week2 w: arrayWeek2) {
if (w == Week2.WED) {
System.out.println();
System.out.println(w.ordinal() + "번째 요일은 => " + w.getDay());
}
}
}
}
(2) 실행결과
SUN
MON
일요일, 평일 , 평일 , 평일 , 평일 , 평일 , 토요일,
3번째 요일은 => 수
반응형
'IT 개발 > Java' 카테고리의 다른 글
[Java] 자바 - Wrapper클래스 개념 및 활용 (문자를 숫자로, 숫자를 문자로) (0) | 2022.07.23 |
---|---|
[Java] 자바 - Calendar클래스로 날짜와 시간 다루기 (0) | 2022.07.22 |
[Java] 자바 - StringBuffer/StringBuilder클래스의 메소드 및 사용예제 (0) | 2022.07.18 |
[Java] 자바 - 문자열 다루기, String클래스의 메소드 및 사용예제 (0) | 2022.07.18 |
[Java] 자바 - StringBuffer와 StringBuilder 클래스의 특징 (0) | 2022.07.16 |