is Data.

java Enum 열거형 사용

enum 열거형 타입은 특수한 기능을 수행한다.

 

개발에 필요한 열거형 상수들을 적절히 모아 개발에 편의를 도모할 수 있다.

enum 열거형 타입을 사용하면 switch 구문을 사용할 때 빛을 발한다. 보다 명시적인 코딩이 가능해진다.

 

/**
 * @author Hyun
 *    enum(열거형)을 사용하면 switch 구문에서 사용할 수 있다.
 *    기존에 switch문에 int형 인자를 넣어 사용하던 것 보다 코드의 직관성이 높아졌다.
 */

//    COLOR enum을 생성
enum COLOR{WHITE, BLACK, RED, BLUE, YELLOW, UNKNOWN};

public class TestEnum {

      public static void main(String[] args) {            
            ExamEnum ee = new ExamEnum();
            COLOR c = COLOR.BLACK;  
            ee.view(c);                   

            //    COLOR enum의 모든 값들을 .view() 메서드로 던진다.
            for(COLOR cc : COLOR.values()) // 열거자를 배열로 반환
                  ee.view(cc);            

      }
}

class ExamEnum {    

      public String view(COLOR c){         
            //    상수인 enum을 switch의 인자로 받아 올 수 있다.
            //    switch는 인자로 int형을 받아와야하지만 enum도 허가한다.
            //    enum을 사용함으로써 case구문에 문법적 명시성이 확보되었다.
            switch(c){          

            case BLACK :
                  System.out.print("블랙/");
                  break;
            case WHITE :
                  System.out.print("하양/");
                  break;
            case RED :
                  System.out.print("빨강/");
                  break;
            case BLUE :
                  System.out.print("파랑/");
                  break;
            case YELLOW :
                  System.out.print("노랑/");
                  break;
            default :
                  System.out.println("\n");
                  System.out.println("enum의 index : " + c.ordinal());
                  System.out.println("enum의 name : " + c.name());
                  System.out.println("enum의 toString : " + c.toString());                      
            }           
            return null;
      }
}

 

결과

블랙/하양/블랙/빨강/파랑/노랑/
 
enum의 index : 5
enum의 name : UNKNOWN
enum의 toString : UNKNOWN

 

switch 구문에 enum 열거형을 사용하는 예 이다.

BLACK, WHITE 처럼 직관적으로 사용함으로써 보다 명시적인 코드가 되었다.