[JAVA] Enum 열거형

고민정·2024년 4월 3일

JAVA

목록 보기
7/32
post-thumbnail

💡 Enum

Enum 은 언제 사용하면 좋을까요?

특정한 값만 가져다가 사용하고 싶을 때 쓰면 좋습니다.
예시를 들어보겠습니다.

public class EnumExam {
    public static final String Male = "Male";
    public static final String Female = "Female";
    public static void main(String[] args) {
        //We want to put only male and female in gender1
        //but gender1 is a just String,
        // so if user puts anything exclude male and female
        // it will run. this is why we have to use "Enum".
        String gender1;
        gender1 = EnumExam.Male;
        gender1 = EnumExam.Female;
        gender1 = "Cat";

        System.out.println(gender1);
    }
}

String 타입인 gender1 에는 성별인 Male, Female 만 들어가게 설정하려고 합니다.
하지만 String 이기 때문에 Cat도 대입이 가능합니다.
실제로 코드를 실행해보면 gender1 은 cat 으로 나옵니다.

이렇게 성별이 아닌 다른 값이 들어가는 것을 애초에 코드를 작성할 때 방지하고 싶을 때 enum을 쓰시면 됩니다.


💡 E.g.

🎇 enum 을 사용할 때는 관습적으로 대문자로 쓴다고 합니다.
🎇 enum 의 변수들은 모두 static 하기 때문에 인스턴스화를 할 필요 X

위 코드에서 Enum 을 추가해 봅시다.

public class EnumExam {
    public static final String Male = "Male";
    public static final String Female = "Female";
    public static void main(String[] args) {
        //We want to put only male and female in gender1
        //but gender1 is a just String,
        // so if user puts anything exclude male and female
        // it will run. this is why we have to use "Enum".
        String gender1;
        gender1 = EnumExam.Male;
        gender1=  EnumExam.Female;
        gender1="Cat";
        System.out.println(gender1);

        Gender gender2;
        gender2 = Gender.MALE;
        gender2 = Gender.FEMALE;
        System.out.println(gender2);

    }

    enum Gender{
        MALE, FEMALE;   //recommend to write a capital letter cuz its customary
    }
}

위의 코드를 실행해보면 enum 에 속해있던 대문자 FEMALE 이 잘 나옴을 알 수 있습니다.

이제 enum 에 FEMALE, MALE 외에 다른 값을 대입하면 어떻게 되는지 봅시다


"Cat" 에 빨간 줄이 뜨면서 오류가 생기는 것을 볼 수 있습니다.
이처럼 enum 은 특정한 값만을 사용하고 싶을 때 쓰면 유용하겠습니다.

0개의 댓글