-
열거 타입(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); } } }
'자바 Java > 문법' 카테고리의 다른 글
비트 논리 연산자(&, |, ^, ~) (0) 2022.01.04 은행 프로그램(예금,출금,잔고) - dowhile반복문과 scanner 활용 (0) 2022.01.04 배열 복사하는 방법 - for, system.arrayCopy() (0) 2022.01.03 String 객체배열 (0) 2022.01.03 String 배열 예제 - arguments에 직접 숫자를 입력하는 계산기 (0) 2022.01.03