더북(TheBook)

NOTE

Q: 열거형은 String이라고 선언하지 않아도 되나요?

 

A: 자바의 자료형은 크게 기본 자료형(int, float, char, ...)과 참조 자료형(class, ...)으로 나뉩니다. enum은 참조 자료형에 속하며 enum형을 가진 형태의 클래스입니다.

 

enum Gender {
    MALE, FEMALE;
}
public class EnumExam {
    public static void main(String[] args) {
        Gender gender;

        gender = Gender.MALE;
        gender = 1; // 오류 발생
        gender = "MALE" // 오류 발생
    }
}

 

이 코드에서 enum형인 Gender 클래스로 선언된 gender에 기본 자료형인 int형은 당연히 들어가지 못하고, 문자열도 들어가지 못합니다.

enum형으로 선언된 값만 가질 수 있기 때문에 enum형인 Gender.MALE, Gender.FEMALE만 들어갈 수 있습니다.

 

String gender1
Gender gender2

 

gender1String으로 선언했고, gender2Gender 클래스로 선언된 것으로 자료형이 다릅니다. 즉, Gender 내부에 선언된 MALE, FEMALE은 문자열이 아니라 enum형으로 인식해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.