Java

[이것이 자바다] 자바 enum 공부 정리

Razelo 2020. 12. 20. 18:08
package sec07.exam01_enum;

public enum Week {
	MONDAY,
	TUESDAY,
	WEDNESDAY,
	THURSDAY,
	FRIDAY,
	SATURDAY,
	SUNDAY
}
package sec07.exam01_enum;

import java.util.Calendar;

public class EnumWeekExample {

	public static void main(String[] args) {
		Week today =  null;
		Calendar cal = Calendar.getInstance(); //컴퓨터의 현재 날짜를 Calendar객체로 돌려줌. -> (getInstance())
		int week = cal.get(Calendar.DAY_OF_WEEK); //오늘의 요일을 돌려준다. -> 정수값으로 
		
		System.out.println(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("열심히 자바 공부합니다. ");
		}
	}

}

 

package sec07.exam01_enum;

public class EnumMethodExample {

	public static void main(String[] args) {
		Week today = Week.SUNDAY;
		String name = today.name();
		System.out.println(name);
		
		int ordinal = today.ordinal();
		System.out.println(ordinal);
		
		Week day1 = Week.MONDAY; //0 
		Week day2 = Week.WEDNESDAY; //2 
		int result1 = day1.compareTo(day2); //순번의 차이를 리턴 0 -2 = -2 
		int result2 = day2.compareTo(day1); 
		System.out.println(result1);
		System.out.println(result2);
		
		Week weekDay = Week.valueOf("SUNDAY"); 
		if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY) {
			System.out.println("주말 이군요.");
		}else {
			System.out.println("평일 이군요");
		}
		
		Week[] days = Week.values(); //배열로 만든다. 
		for(Week day: days) {
			System.out.println(day);
		}
		
		
	}

}
package sec07.exam01_enum;
/*
<열거 타입>
한정된 값만을 갖는 데이터 타입
한정된 값은 열거 상수로 정의함. 

열거 타입 소스 파일 생성: ~.java 
열거 상수 이름은 관례적으로 모두 대문자로 작성

열거 타입 변수를 선언할 수 있다. 
열거 타입 변수값은 열거 상수 중 하나이어야 한다. 
열거 타입 변수는 탐조 타입이므로, null값을 저장할 수 있다. 

열거 상수는 열거 객체를 참조한다. 
열거 객체는 힙에 생성된다. 
열거 상수는 메소드 영역에서 열거 객체를 참조한다. 

열거상수에서/ 참조하는객체의 내부 객체는 해당 문자열을 갖고 있다. 
MONDAY라면 내부 객체에도 해당 문자열을 가지고 있다. 그러므로 출력하면
참조하는 객체의 문자열이 나온다. 

<열거 객체의 메소드>
열거 객체는 열거 상수의 문자열을 내부 데이터로 가지고 있다.
열거 타입은 컴파일 시에 java.lang.Enum 클래스를 자동 상속한다. 
 -> 열거 객체는 java.lang.Enum 클래스의 메소드를 사용할 수 있다. 


열거 객체의 메소드들 ~~ 
리턴타입             메소드 					설명 
String		 name()  				열거 객체의 문자열을 리턴
int 		 ordinal() 				열거 객체의 순번을 리턴 
int			 compareTo() 			열거 객체를 비교해서 순번 차이를 리턴
열거타입  		 valueOf(String name)	주어진 문자열의 열거 객체를 리턴 
열거배열		  values() 				모든 열거 객체들을 배열로 리턴 






*/

 

 

반응형