ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 열거 타입(Enumeration Type)
    자바 Java/문법 2022. 1. 3. 15:52

    열거타입(Enumeration Type) : 한정된 값만 갖는 데이터 타입. 한정된 값은 열거상수로 정의

     

    <Week 클래스>

    public enum Week {
    	// 상수는 모두 대문자로 선언
    	MONDAY,
    	TUESDAY,
    	WEDNESDAY,
    	THURSDAY,
    	FRIDAY,
    	SATURDAY,
    	SUNDAY;
    }

    <EnumWeekEx 클래스>

    import java.util.Calendar;
    
    public class EnumWeekEx {
    
    	public static void main(String[] args) {
    		
    		Week today = null; // enum타입의 변수 선언
    		
    		Calendar cal = Calendar.getInstance(); // 자바에 있는 캘린더 객체 생성
    		int week = cal.get(Calendar.DAY_OF_WEEK); // 날짜정보를 가져와서 변수에 넣음. int로 선언하여 숫자값을 리턴
    		
    		switch(week) {
    			case 1 :
    				today = Week.SUNDAY; 
    				break;
    			case 2 :
    				today = Week.MONDAY;
    				break;
    			case 3 :
    				today = Week.WEDNESDAY;
    				break;
    			case 4 :
    				today = Week.THURSDAY;
    				break;
    			case 5 :
    				today = Week.FRIDAY;
    				break;
    			case 6 :
    				today = Week.SATURDAY;
    				break;
    				
    		}
    		System.out.println("오늘의 요일: " + today);
    		
    	}
    
    }

    오늘의 요일: MONDAY

    (게시글 작성날짜 기준 오늘이 월요일이므로 MONDAY 출력)

     

    <EnumMethod클래스>로 열거 객체의 메소드 알아보기

    public class EnumMethod {
    
    	public static void main(String[] args) {
    		
    		// name() - 객체의 이름을 가져옴
    		Week today = Week.SUNDAY; // 오늘이 일요일이라고 선언
    		
    		String name = today.name(); 
    		System.out.println(name); // SUNDAY
    		
    		// ordinal() - 객체의 순번을 리턴
    		int ordinal = today.ordinal(); 
    		System.out.println(ordinal); // 6
    		
    		// compareTo() - 순번의 차이값을 리턴
    		Week day1 = Week.MONDAY;
    		Week day2 = Week.WEDNESDAY;
    		int result1 = day1.compareTo(day2); 
    		int result2 = day2.compareTo(day1);
    		System.out.println(result1); // -2
    		System.out.println(result2); // 2
    		
    		// valueOf() - 주어진 문자열의 열거 객체를 리턴
    		if(args.length == 1) { // 커멘트창에 직접 입력
    			String strDay = args[0];
    			Week weekDay = Week.valueOf(strDay); 
    			if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY) {
    				System.out.println("주말입니다");
    			} else {
    				System.out.println("평일입니다");
    			}
    		}
    		
    		// values() - 모든 열거 객체들을 배열로 리턴
    		Week[] days = Week.values();
    		for (Week day : days) {
    			System.out.println(day);
    		}
    		
    
    	}
    
    }

     

Designed by Tistory.