글
JAVA 에서 상수로 표현하는 효과적인 문법이 enum 입니다. enum 은 클래스와 비슷한 방식으로 정의합니다.
enum EnumName{
ENUM_VALUE1, ENUM_VALUE2
}
위와 같이 정의하는 것이 일반적인 사용방법입니다. 사용하는 쪽에서는, EnumName.ENUM_VALUE1 처럼, 열거형명.열거형값으로 접근해서 사용하면 됩니다.
두 번째로는, 열거형을 진짜 클래스처럼 정의하는 방법입니다.
enum EnumName{
ENUM_VALUE1(1), ENUM_VALUE2(2)
private final int mEnumValue;
EnumName(int enumValue){
mEnumValue = enumValue;
}
public int getEnumValue(){
return mEnumValue;
}
}
정의는 위와 같은 방식으로 합니다. 클래스처럼 정의하기 때문에, 생성자도 있고 (생성자는 무조건 private 으로 인식함), 메소드도 있습니다. 또한, 멤버 변수도 있고 (mEnumValue) 실제 열거형 값들도 존재합니다. (ENUM_VALUE1, ENUM_VALUE2)
ENUM_VALUE1(1) 의 의미는, ENUM_VALUE 라는 열거형 값을 정의하면서 동시에 EnumName 이라는 클래스의 생성자를 호출하면서 1 을 매개변수로 넘기라는 것입니다. 즉, EnumName 형으로 ENUM_VALUE1 와 ENUM_VALUE2 가 각각 1, 2 라는 값으로 정의되는 것입니다.
열거형은, Enum 클래스를 상속하고 있어서, Enum 클래스의 메소드를 사용할 수 있습니다.또한, Enum 클래스는, Comparable 과 Serializable 인터페이스를 상속합니다. 따라서, compareTo 메소드도 overriding 되어 있고, 직렬화 / 역직렬화 또한 가능합니다.
(Enum 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html
'4.1) OCJP > 관련 이론 및 문법' 카테고리의 다른 글
관련 이론 및 문법 - synchronized (0) | 2015.07.08 |
---|---|
관련 이론 및 문법 - Thread 클래스 (0) | 2015.07.07 |
관련 이론 및 문법 - 데드락 (deadlock) (0) | 2015.07.07 |
관련 이론 및 문법 - 응집도 (cohesion) (0) | 2015.07.01 |
관련 이론 및 문법 - 결합도 (coupling) (0) | 2015.07.01 |
관련 이론 및 문법 - Object 클래스 (0) | 2015.06.23 |
관련 이론 및 문법 - static (0) | 2015.06.23 |
관련 이론 및 문법 - Cloneable 인터페이스 (0) | 2015.06.22 |
관련 이론 및 문법 - Runnable 인터페이스 (0) | 2015.06.22 |
관련 이론 및 문법 - TreeSet 클래스 (0) | 2015.06.22 |
RECENT COMMENT