05-31.1 열거형이란?
Def)열거형: 서로 관련있는 상수를 모아 집합으로 정의한 것이다.
- 자바는 열거형을 이용해서 변수를 선언할 수 있다.
- 그리고 열거형을 변수형으로 사용한다.
- 열거형 형식 : enum 열거형이름 { 값1, 값2 }
- enum은 참조 자료형에 속한다.
- 열거형은 enum 형을 가진 형태의 클래스이다. ( String이라고 선언하지 않는다.)
05-31.2 열거형이 필요한 이유
Ex) 상수로 정의할 때
<hide/>
package javaStudy;
public class EnumExam {
public static final String MALE = "MALE";
public static final String FEMALE = "FEMALE";
public static void main(String[] args){
String gender1;
gender1 = EnumExam.MALE;
gender1 = EnumExam.FEMALE;
gender1 = "boy";
}
}
Note)
- final: 상수 선언 시 필요한 키워드
- 상수를 선언할 때 이름 전체를 대문자로 쓰는 것이 관례이다. => MALE, FEMALE
- gender1은 MALE, FEMALE 값 중 하나만 가지게 하고 싶어한다.
- 이럴 때는 상수로 선언한 값을 이용하면 된다.
-> gender1 = 클래스명 + 마침표 + 상수로 선언해놓은 MALE or FEMALE
-> ex) gender = Gender.MALE => 정상, gender = "MALE" => 컴파일 에러
- gender1에 boy라는 문자열을 넣으면 ?
-> 원래 의도한 것은 gender1에 MALE이나 FEMALE 두 값 중 하나만 넣는 것이었다.
-> 그런데 boy를 넣어도 에러가 나지 않는다.
-> boy도 string 값이므로 에러가 나지 않는다.
- 이런 문제를 막기 위해 열거형을 사용한다.
-> 열거형: enum 열거형이름 { 값1, 값2 }
05-31.3 열거형 사용법
Ex)
<hide/>
package javaStudy;
public class EnumExam {
public static final String MALE = "MALE";
public static final String FEMALE = "FEMALE";
public static void main(String[] args){
String gender1;
gender1 = EnumExam.MALE;
gender1 = EnumExam.FEMALE;
Gender gender2; // Gender형 변수로 gender2를 선언
gender2 = Gender.MALE;
gender2 = Gender.FEMALE;
}
enum Gender{ // 열거형 선언
MALE, FEMALE;
}
}
Note)
- enum을 이용해서 열거형을 선언한다.
- 열거형 이름: Gender
- enum의 중괄호 안에는 넣고 싶은 값인 MALE, FEMALE 두 값을 넣는다.
- 상수로 정의할 때는 string 형의 gender1이라고 선언했으나
- 열거형으로 정의할 때는 enum인 Gender 자체가 자료형이 되므로 Gender으로 선언할 수 있다.
- Gender gender2 를 선언하면 gender2에 gender.MALE 과 gender.FEMALE만 들어갈 수 있다.
- 따라서, 앞선 예제처럼 boy를 넣으면 컴파일 에러가 난다.
'Java > 모두의 자바' 카테고리의 다른 글
Chapter 06-33 this (0) | 2022.02.07 |
---|---|
Chapter 06-32 생성자 (0) | 2022.02.07 |
Chapter 05-30 변수의 스코프와 static (0) | 2022.02.05 |
Chapter 05-29 String 클래스의 메서드 (0) | 2022.02.05 |
Chapter 05-29 String 클래스의 메서드 (0) | 2022.02.05 |