1057282504352916
권용호
  • 2016.7.6 17:55
  • 조회수 70
  • 답변수 1
1057282504352916
권용호
  • 2016.7.6 17:55
  • 조회수 70
  • 답변수 1

질문 있습니다.

String gender1

Gender gender2

String gender1 이라고 gender1을 만들때 String을 선언?했는데...

enum이라고 해서 만들면

String이라고 선언?하지 않고
Gender gender2 라고만 하면 되는 건가요?

Gender라는 것에 String에 해당하는 조건?이 담겨 있는 것인지...

질문이 제가 하고도 잘 질문한건지 모르겠네요.ㅠㅠ

  • #자바 입문
  • #열거형(enum)

1 답변

  • Spgjnhnsidwygch8ddkd
    Chandler
    • 2016.7.8 15:15

    자바의 자료형은 크게 기본 자료형(int, float, char, ...)과 참조 자료형(class, ...)으로 나뉘는 데요.
    이 중 enum은 참조 자료형에 속하며, enum type을 가진 형태의 클래스입니다.

    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형은 당연히 못 들어가고, String 클래스인 문자열도 들어가지 못합니다.
    enum 타입으로 선언된 값만 가질 수 있기 때문에, enum 타입인 Gender.MALE, Gender.FEMALE만이 들어갈 수 있습니다.

    String gender1
    Gender gender2
    

    gender1는 String으로 선언했고, gender2는 Gender클래스로 선언된 것으로 자료형이 다릅니다.
    정리하자면, Gender내부에 선언된 MALE, FEMALE은 문자열로 보시면 안되고 enum 타입으로 보셔야합니다.

    • 추가로 강의에서 gender1과 gender2 두 가지 방법으로 설명하는데요. gender1은 상수로 선언하여 열거형(enum) 대신 사용할 수 있는 방법입니다.-Chandler
      2016.7.8 15:20
    • 그렇군요.ㅎㅎ 감사합니다. 덕분에 이해가 된거 같습니다. 답변 감사합니다.-권용호
      2016.7.8 15:50

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.