Enum(열거형)은 프로그래밍 언어에서 사용되는 데이터 형식 중 하나로, 관련된 상수들의 집합을 정의하는 데 사용된다. "열거형"이라는 용어는 열거(enumeration)라는 단어에서 유래했으며, 열거형은 상수를 열거하는 방식으로 사용된다.
열거형은 연관된 값들을 그룹화하여 코드의 가독성을 높이고 실수를 줄이는 데 유용하다.
*계절을 나타내는 열거형
public class Main {
// 계절을 나타내는 열거형 Season 정의
enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER
}
public static void main(String[] args) {
// 열거형 상수 사용 예시
Season currentSeason = Season.SPRING;
System.out.println("현재 계절은 " + currentSeason + "입니다.");
// switch 문을 이용한 열거형 상수 사용 예시
switch (currentSeason) {
case SPRING:
System.out.println("꽃이 피는 계절입니다.");
break;
case SUMMER:
System.out.println("더운 계절입니다.");
break;
case AUTUMN:
System.out.println("단풍이 예쁜 계절입니다.");
break;
case WINTER:
System.out.println("눈이 내리는 계절입니다.");
break;
default:
System.out.println("알 수 없는 계절입니다.");
break;
}
}
}
*날짜 열거형
public enum Week {//열거형 객체는 상수이므로 대문자로 쓴다.
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATERDAY,
SUNDAY
}
calender 클래스는 날짜와 시간을 다루기 위한 클래스이다. 하지만 java.time 패키지가 추가되어 이를 사용하는 것을 권장한다. LocalDate, LocalTime, LocalDateTime 등의 클래스를 import하여 간편하고 안전하게 날짜 및 시간을 처리할 수 있다.
import java.util.Calendar;
public class EnumEX01 {
public static void main(String[] args) {
Week today = null;
Calendar cal = Calendar.getInstance();//calender 메소드
System.out.println(cal.get(Calendar.YEAR));//YEAR라는 상수를 가져와서 출력한다.
System.out.println(cal.get(Calendar.MONTH));//배열처럼 보관해서 1월에 0으로 찍힌다.
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//주를 숫자로 가져온다.//일요일 1, 월요일 2, 화요일 3, 수요일 4, 목요일 5, 금요일 6
int weekday = cal.get(Calendar.DAY_OF_WEEK);
switch(weekday) {//열거형 상수를 쓰는 이유는 DAY_OF_WEEK가 숫자로 되어있기 때문에 가독성을 위해 사용한다.
case 1 :
today = Week.SUNDAY;
break;
case 2 :
today = Week.MONDAY;
break;
case 3 :
today = Week.TUESDAY;
break;
case 4 :
today = Week.WEDNESDAY;
break;
case 5 :
today = Week.THURSDAY;
break;
case 6 :
today = Week.FRIDAY;
break;
case 7 :
today = Week.SATERDAY;
break;
}
if(today == Week.SUNDAY) {
System.out.println("일요일은 푹 쉽니다.");
}else {
System.out.println("열심히 자바공부를 합니다.");
}
}
'JavaStudy' 카테고리의 다른 글
[Java] inheritance(상속) (0) | 2024.01.26 |
---|---|
[Java] singleton(싱글톤) (2) | 2024.01.26 |
[Java] class (2) | 2024.01.25 |
[Java] 배열 (0) | 2024.01.24 |
[Java] switch (0) | 2024.01.24 |