자바

JAVA 자바 열거 타입 ,자바 ENUM 열거형

알통몬_ 2017. 3. 12. 18:55
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

몇 가지 한정된 값만 갖는 데이터들이 있음 => 성별, 의류 사이즈 등등

열거타입(Enumeration Type) : 한정된 값만을 갖는 데이터 타입. 

열거 타입은 몇 개의 열거상수(enumeration constant) 중에서 

하나의 상수를 저장하는 데이터 타입.


열거 타입 선언

 먼저 열거 타입의 이름을 정하고 열거 타입으로 소스 파일(.java)을 생성해야 합니다. 

열거 타입 이름 : 관례적으로 첫 문자를 대문자로 하고 나머지는 소문자로 구성.

여러단어로 구성된 이름이라면 낙타식 표현방법을 사용.


선언 방법

public enum Week{

  MONDAY,

  TUESDAY,

  WEDNESDAY,

  THURSDAY,

  FRIDAY,

  SATURDAY,

  SUNDAY

}

열거 상수 : 열거 타입의 값으로 사용되는데 관례적으로 열거 상수는 모두 대문자로 작성.
열거타입도 하나의 데이터 타입이므로 변수를 선언하고 사용해야 합니다.
열거타입 변수;
Week today;
Week yesterday;
열거 타입 변수를 선언하고 열거 상수를 저장할 수도 있고, 참조 타입이므로 null값 저장 가능.
Week today = Week.SUNDAY;
Week yesterday = null;
그리고 열거 상수도 객체입니다.

자바는 컴퓨터의 날짜 및 요일, 시간을 프로그램에서 사용할 수 있도록 하기위해 Date, Calendar, LocalDateTime(자바 8부터 지원) 등의 클래스를 제공합니다.

Calendar 를 이용해 날짜와 시간을 얻는 방법
Calendar 변수를 선언하고 Calendar.getInstance메소드가 리턴하는 Calendar 객체를 얻습니다.
Calendar cal = new Calendar.getInstance();
객체를 얻었다면 get메서드를 이용해서 년,월,일,요일,시간,분,초를 얻을 수 있습니다.
int year = now.get(Calendar.YEAR);             //년
int month = now.get(Calendar.MONTH) + 1;    //월
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);    //초

Calendar 를 이용해서 오늘의 요일을 얻고 나서 열거 타입 변수 today에 해당 열거 상수를 대입하는 예제)
import java.util.Calendar;

public class EnumWeekExample {
public static void main(String[] args) {
Week today = null;
Calendar cal = Calendar.getInstance();
int week = cal.get(Calendar.DAY_OF_WEEK);
switch(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.SATURDAY; break;
}
System.out.println("오늘 요일: "+ today);
if(today == Week.SUNDAY) {
System.out.println("일요일 - 축구");
} else {
System.out.println("자바 공부");
}
}
}
결과를 얻으려면 같은 패키지 안에 위에서 본 Week.java 파일이 었어야합니다.
 



반응형