티스토리 뷰
열거형 상수 (enum 타입) 정의 예제
파일명: Foo.java
public class Foo {
enum Week { 월, 화, 수, 목, 금, 토, 일 } // 끝에 세미콜론(;)을 붙이지 않음
enum RGB { red, green, blue }
public static void main(String args []) {
// Week 이라는 새로운 자료형으로 Day 라는 변수를 만들어, "금"을 대입.
Week Day = Week.금;
System.out.println(Day + "요일"); // 출력 결과: 금요일
System.out.println(RGB.blue); // 출력 결과: blue
System.out.println(Week.토); // 출력 결과: 토
Day = Week.일;
System.out.println(Day); // 출력 결과: 일
}
}
enum Week { 월, 화, 수, 목, 금, 토, 일 } // 끝에 세미콜론(;)을 붙이지 않음
enum RGB { red, green, blue }
public static void main(String args []) {
// Week 이라는 새로운 자료형으로 Day 라는 변수를 만들어, "금"을 대입.
Week Day = Week.금;
System.out.println(Day + "요일"); // 출력 결과: 금요일
System.out.println(RGB.blue); // 출력 결과: blue
System.out.println(Week.토); // 출력 결과: 토
Day = Week.일;
System.out.println(Day); // 출력 결과: 일
}
}
열거형 상수 즉 Enumeration 이란, 미리 정해진 일정한 값을 가진 새로운 자료형을 사용자가 직접 만드는 것입니다.
문자열로 정의되어 있지만 내부적으로는 정수로 취급되기에, 일반 배열로 처리할 때보다 속도가 빠릅니다.
가령 일주일은 7개의 요일만 있고, 빛의 삼원색 (RGB) 은 3가지의 색으로만 이루어져 있기에, 이런 데이터를 다룰 때에는 열거형 상수로 정의하여 사용하면 이상적입니다.
상수이기에
Week.토 = Week.일;
이런 대입은 안됩니다. 그러면 Foo.java:12: cannot assign a value to final variable 토 이런 에러가 납니다.
enum 은 반드시 메소드 외부에서 정의해야 합니다. 그렇지 않으면 Foo.java:5: enum types must not be local 이런 에러가 납니다.
자바 버전 5.0 (=1.5) 이상에서만 Enumeration 이 지원됩니다.
댓글