Enum 이란?
Enum의 특징
1) 클래스를 상수처럼 사용 가능함.
enum Student {
CHEOLSU("SEOUL", "COMPUTER_SCIENCE"),
YURI("KOREA", "BUSINESS"),
HOON("YEONSEI". "KOREAN");
private final String UNIVERSITY;
private final String MAJOR;
private final STRING STUDENT_NUMBER;
// public 사용시 컴파일 에러 발생
Student(String university, String major) {
this.UNIVERSITY = university;
this.major = major;
}
}
Public
으로 사용 시 컴파일 에러 발생 => 반드시 private로 생성해야 함.2) Enum 클래스를 구현하는 경우 상수 값과 같이 유일하게 하나의 인스턴스가 생성되어 사용된다.
enum Student {
CHEOLSU("SEOUL", "COMPUTER_SCIENCE"),
YURI("KOREA", "BUSINESS"),
HOON("YEONSEI". "KOREAN");
private final String UNIVERSITY;
private final String MAJOR;
private final STRING STUDENT_NUMBER;
// public 사용시 컴파일 에러 발생
Student(String university, String major) {
this.UNIVERSITY = university;
this.major = major;
}
public void plusnumber() {
STUDENT_NUMBER++;
}
}
3) 인스턴스 생성과 상속을 방지하여 상수값의 Type 안정성의 보장
public class EnumExample {
public static void main(String[] args) {
// java.lang.enum의 toString 메소드 상속
System.out.println(Student.CHEOLSU.toString());
}
}
이 밖에도,
4) Object를 계승받아 Objecㅅ에서 제공하는 메소드를 활용 할 수 있으며, 디폴트 메소드를 사용 가능하다.
5) Serializable, Compareable이 가능하다.
6) 비교연산은 Int 상수와 성능이 비슷하다.
7) 그룹핑이 가능하다(Enum + Enum 조합가능)
등이 있다.
참고