IT 개발/Java

[Java] 자바 - enum 사용법 (열거형, 열거타입)

KADOSHOLY 2022. 7. 21. 10:22
반응형

 

자바 - enum 사용법 (열거형, 열거타입)

 

 

열거형 enum은 상수를 의미별로 함께 묶어서 사용하고자 할 때 주로 사용됩니다. 예를들면 일, 월, 화, 수, 목, 금, 토와 같이 요일을 하나로 묶어 관리할 수 있으며, 데이터 값의 의미를 명확하게 전달할 수 있습니다. 여기서는 열거형 enum의 장점, 선언방법, 메소드 및 사용방법에 대해서 예제와 함께 알아보도록 하겠습니다. 

 

 

   목차

  1. enum이란?
  2. enum의 장점
  3. enum 선언방법
  4. enum 메소드
  5. enum 사용예제

 

 

1. enum이란?

 

열거형 enum은 상수로 구성된 특별한 클래스입니다. 클래스처럼 변수와 메소드를 가질 수 있지만, 상속이나 인스턴스를 생성할 수는 없으며, enum 값은 상수로 public, static, final 속성을 가지고 있어 변경될 수 없습니다.

 

 

2. enum의 장점

  1. 데이터 값의 의미를 명확히 알 수 있습니다. 
  2. 컴파일 시 데이터 타입 및 유효성 체크를 할  수 있습니다. 

 

 

3. enum 선언방법

 

열거형은 enum 키워드를 사용하여 정의하며, 열거형의 이름은 보통 클래스명과 같이 첫 글자를 대문자로 시작합니다. { } 안에 열거값은 , 로 구분하며 상수와 같이 대문자를 사용합니다. 

열거형의 선언은 클래스 안에서도 선언할 수 있고, 클래스 밖에서도 선언할 수 있습니다. 

 

enum Week { SUN, MON, TUE, WED, THU, FRI, SAT }

 

 

4. enum 메소드

  1. valueOf(String str) : 문자열 str과 일치하는 열거값을 반환합니다. 
  2. values( ) : 열거값 전부를 배열로 반환합니다. 
  3. ordinal( ) : 열거값의 순서를 반환합니다. 

 

 

5. enum 사용예제

 

(1) enum 정의 및 실행

enum Week1 {
	SUN, MON, TUE, WED, THU, FRI, SAT
}

enum Week2 {
	SUN("일"), MON("월"), TUE("화"), WED("수"), THU("목"), FRI("금"), SAT("토");
	final private String day;
	
	Week2(String day) {
		this.day = day;
	}
	
	String getDay() {
		return day;
	}
}

public class HelloWorld {
	public static void main(String[] args) {

		String s = "MON";
		Week1 w1 = Week1.SUN;
		Week2 w2 = Week2.valueOf(s);

		System.out.println(w1);
		System.out.println(w2);
		
		Week1[] arrayWeek1 = Week1.values();
        
		for (Week1 w: arrayWeek1) {
			switch (w) {
			case SAT:
				System.out.print("토요일" + ", ");  break;
			case SUN:
				System.out.print("일요일" + ", ");  break;
			default:
				System.out.print("평일 " + ", ");  break;
			}
		}
		
		Week2[] arrayWeek2 = Week2.values();
        
		for (Week2 w: arrayWeek2) {
			if (w == Week2.WED) {
				System.out.println();
				System.out.println(w.ordinal() + "번째 요일은 => " + w.getDay());
			}
		}
		
	}
}

 

(2) 실행결과

SUN
MON
일요일, 평일 , 평일 , 평일 , 평일 , 평일 , 토요일, 
3번째 요일은 => 수

 

 

반응형