[Java] 9. Enum(열거형)


Enum에 대한 깊은 내용은 아니고 단순 사용하는 방법 예제에 대한 포스팅이다.


1. Enum(열거형)

java에서 관련 된 상수들을 같이 묶어 놓은 것을 Enum(열거형)이라고 한다. 예제 코드와 주석으로 설명을 대체하는 포스팅이다.



2. 예제 코드

//사용 예제 1
enum GLADE {
    BRONZE, SILVER, GOLD, PLATINUM
}

//사용 예제 2
enum MEMBERSHIP_SALE {

    BRONZE(0)
    , SILVER(2)
    , GOLD(5)
    , PLATINUM(7);

    private int value;

    MEMBERSHIP_SALE(int discountRate) {
        this.value = discountRate;
    }

    public int getValue(){
        return value;
    }
}

//사용 예제 3
enum SYSTEM_CODE {
    CODE1("CODE1", "데이터1")
    , CODE2("CODE2", "데이터2")
    , CODE3("CODE3", "데이터3");

    private String codeName;
    private String codeValue;

    SYSTEM_CODE(String codeName, String codeValue) {
        this.codeName = codeName;
        this.codeValue = codeValue;
    }

    public String getCodeName() {
        return this.codeName;
    }

    public String getCodeValue() {
        return this.codeValue;
    }
}


public class ExEnum {

    public static void main(String... args) {

        //사용 예제 1
        GLADE g1 = GLADE.BRONZE;//.toString()
        GLADE g2 = GLADE.valueOf("SILVER");
        GLADE g3 = Enum.valueOf(GLADE.class, "GOLD");

        System.out.println("g1= " + g1);
        System.out.println("g2= " + g2);
        System.out.println("g3= " + g3);

        GLADE[] gs = GLADE.values();
        for (GLADE g : gs) {
            System.out.println("name= " + g.name() + ", order= " + g.ordinal() );
        }

        //사용 예제 2
        int m1 = MEMBERSHIP_SALE.BRONZE.getValue();
        int m2 = MEMBERSHIP_SALE.valueOf("SILVER").getValue();
        String m3Str = MEMBERSHIP_SALE.valueOf("GOLD").name();

        System.out.println("m1= " + m1);
        System.out.println("m2= " + m2);
        System.out.println("m3Str= " + m3Str);


        //사용 예제 3
        String c1 = SYSTEM_CODE.CODE1.getCodeName();
        String c2 = SYSTEM_CODE.CODE1.getCodeValue();
        System.out.println("codeName= " + c1 + ", codeValue=" + c2);
    }
}
g1= BRONZE
g2= SILVER
g3= GOLD
name= BRONZE, order= 0
name= SILVER, order= 1
name= GOLD, order= 2
name= PLATINUM, order= 3
m1= 0
m2= 2
m3Str= GOLD
codeName= CODE1, codeValue=데이터1