: 한정된 값인 열거 상수(enumeration constant)중에서 하나의 상수를 저장하는 타입
- public enum : 열거 타입을 선언하기 위한 키워드, 반드시 소문자로 작성
- 열거 상수: 열거 타입의 값으로 사용됨
public enum 열거타입이름{...}
ex)
public enum Week{MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}
[열거타입이름: Week]
[열거상수: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
- 열거 타입 생성 방법
1. File → New → Enum
2. [New Enum Type] 대화상자의
[Package] 입력란에는 열거 타입이 속할 패키지 이름을 입력
[Name] 입력란에는 열거 타입 이름인 Week를 입력한 후
Finish 버튼 클릭
: 열거 타입도 하나의 타입이므로 변수를 선언하고 사용해야함
[표현법] 열거타입 변수;
ex)
Week today;
Week reservationDay;
: 열거 타입 변수 선언 후, 열거 상수 저장 가능
: 열거 상수는 단독으로 사용할 수 없음
: 열거 타입도 참조 타입이기 때문에 null값 저장 가능
[표현법] 열거타입 변수 = 열거타입.열거상수;
ex)
Week today = Week.SUNDAY;
: 열거 상수는 객체다. 그러므로 열거 객체로 생성됨
- 열거 타입 변수 Week의 경우 MONDAY~SUNDAY까지의 열거 상수는 총 7개의 Week 객체로 생성됨
그리고 메소드 영역에 생성된 열거 상수가 해당 Week 객체를 각각 참조하게됨
ex) Week today = Week.SUNDAY;
today == Week.SUNDAY; //true
- 열거 타입 변수 today는 스택 영역에 생성됨
today에 저장되는 값은 Week.SUNDAY 열거 상수가 참조하는 객체의 번지임
따라서 열거 상수 Week.SUNDAY와 today 변수는 서로 같은 Week객체를 참조하게됨
ex) Week week1 = Week.SATURDAY;
Week week2 = Week.SATURDAY;
week1 == week2 // true
- week1과 week2는 모두 Week.SATURDAY 상수라는 동일한 Week 객체를 참조하기 때문에 true
: 컴퓨터의 날짜 및 요일, 시간을 얻기 위해 Calendar 클래스를 사용함
import java.util.Calendar;
//Calendar 변수를 선언하고 Calendar.getInstance()메소드로 Calendar 객체를 얻음
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR); //연
int month = now.get(Calendar.MONTH)+1; //월(1~12)
int day = now.get(Calendar.DAY_OF_MONTH); //일
int week = now.get(Calendar.DAY_OF_WEEK); //요일(1~7)
int hour = now.get(Calendar.HOUR); //시간
int minute = now.get(Calendar.MINUTE); //분
int second = now.get(Calendar.SECOND); //초