티스토리 뷰

Programming Language/JAVA

열거형 enum

광식'S Story 2009. 1. 7. 11:38

특정 값만을 가질 수 있는 데이터형을 정의할 때 사용

단순히 클래스에 상수를 모아둔 것과 달리 상수를 정의한 새로운 클래스형을 정의하는 것

 

 AccessModifier enum 열거형이름{

   상수들 나열,.

}

 

열거형은 일반 클래스 정의에서 만들어진 레퍼런스형과 마찬가지로 변수의 선언이 가능하다.

열거형이름 변수명;

열거형에 의해서 선언된 변수는 오로지 열거형에서 정의된 값들만 가질 수 있다.

 

public enum Color{

Red, Geen, Blue

}

 

Color myColor = Color.red;

 

열거형에 선언된 각 상수값은 실제로는 해당 열거형의 인스턴스이다.

Color.Red는 일정한 데이터형을 갖고 있는 상수값이 아니라, Color 열거형의 인스턴스 변수이다.

열거형은 단순히 상수를 모아둔 것이 아니고 상수값을 위해서 제공되는 특수한 클래스 형태이다.

열거형의 비교는  == 나 equals() 메서드를 모두 사용해도 된다.

swich문을 이용하는 경우에 case문에는 기본 데이터형밖에는 사용할 수 없지만 열거형만은 예외로 사용이 가능하다. switch문에서는 열거형에 정의된 변수를 열거형의 지정없이 직접 적어주어야 한다.

 

<Color.java>

public enum Color {Red, Green, Blue}

 

<ShowEnum.java>

import java.util.*;

public class ShowEnum{

Color myColor;

public ShowEnum(Color c){

   myColor = c;

}

public Color getColor(){

   return myColor;

}

public void setColor(Color c){

myColor = c;

}

public static void main(String[] args){

   List<ShowEnum> objList = new Vector<ShowEnum>();

   ShowEnum obj;

   obj = new ShowEnum(Color.Red);

   objList.add(obj);

   obj = new ShowEnum(Color.Green);

   objList.add(obj);

obj = new ShowEnum(Color.Blue);

   objList.add(obj);

   for(ShowEnum param : objList){

     switch(param.getColor()){

       case Red:

          System.out.println( This Objects color is RED); break;

case Green:

          System.out.println( This Objects color is Green); break;

case Blue:

          System.out.println( This Objects color is RED);  break;

       } //switch end

    } //for end

  } // main end

} //class end

 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함