Monday, October 02, 2006
자바/Java] 열거형 상수 정의, enum 타입 - Enumeration
열거형 상수 (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 이 지원됩니다.
루프문에서 enum 타입의 요소에 쉽게 접근하는 방법이 여기에 있습니다: ▶▶ 자바/Java] foreach 루프문 만들기, for문의 특수 형태
▶▶ 자바/Java] 변수를 상수로 만들기. 읽기 전용으로 - Constant
tag: java
자바 | Java
<< Home