개발자 도전기
[JAVA] Enum (열거 타입) 본문
열거타입이란?
Enum
몇가지로 한정된 값만을 갖는 타입이다.
한정된 값인 열거 상수를 가지고 열거 상수는 모두 대문자로 작성한다.
public enum Week{ // 열거 타입 이름
// 열거 상수 목록
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
열거 타입의 사용
열거 타입도 하나의 데이터 타입이므로 변수를 선언하고 사용해야 한다.
Week today;
Week reservationDay;
열거 타입 변수에는 열거 상수를 대입할 수 있는데, '열거타입.열거상수' 형태로 작성한다.
또한 열거 타입은 참조 타입이므로 null 값도 대입할 수 있다
Week today = Week.SUNDAY;
Week birthday = null;
다음은 Calendar를 이용해서 오늘의 요일을 얻는 예제이다.
열거 타입은 주로 switch문과 함께 사용한다
public class WeekExample {
public static void main(String[] args) {
Week today = null;
Calendar cal = Calendar.getInstance();
// 오늘의 요일 얻기(1~7)
int week = cal.get(Calendar.DAY_OF_WEEK);
// 숫자를 열거 상수로 변환해서 변수에 대입
switch (week) {
case 1 -> today = Week.SUNDAY;
case 2 -> today = Week.MONDAY;
case 3 -> today = Week.TUESDAY;
case 4 -> today = Week.WEDNESDAY;
case 5 -> today = Week.THURSDAY;
case 6 -> today = Week.FRIDAY;
case 7 -> today = Week.SATURDAY;
}
if (today == Week.THURSDAY) {
System.out.println("목요일 저녁에는 LCK를 봅니다");
} else {
System.out.println("열심히 자바를 공부합니다");
}
}
}
'개발공부 > JAVA' 카테고리의 다른 글
[JAVA] cannot find symbol method 에러 (Feat. Lombok Setter) (1) | 2024.12.02 |
---|---|
[JAVA] LOMBOK (0) | 2024.04.16 |
[JAVA] 네트워크 입출력 (0) | 2024.03.29 |
[JAVA] I/O Stream (1) | 2024.03.27 |
[JAVA] 멀티 스레드 (0) | 2024.03.26 |