현재 자바 고급스터디를 진행하고 있기 때문에 Enum class에 관해서는 간단하게 알아보도록하자.
public enum Brand {
SKT("에스케이"),LG("엘쥐"), KT("케이티");
private final String value;
Brand(String value){
this.value = value;
}
public String getValue() {
return value;
}
}
위와 같이 enum class 를 만들수 있는데 우리가 평소에 선언해서 사용하던 class 를 만드는 법과 거의 유사하지만 조금의 차이점이 존재한다.
우선 열거형 클래스를 사용하는 이유는 평소 특정 상태나 음계처럼 자주 사용되는 표시가 필요할 때 이를 상수로 선언하여서 사용할 때가 많다.
음계에 대해서 클래스를 작성해보자.
public class Scale {
public static final int DO = 0;
public static final int RE = 1;
public static final int MI = 2;
public static final int FA = 3;
public static final int SO = 4;
public static final int LA = 5;
public static final int SI = 6;
}
이렇게 사용해야했다.
벌써부터 보기 싫어진다.
이와 똑같이 동작하면서 더 많은 기능을 제공해주는 것이 enum class 이다.
//same or more operation
public enum Scale {
DO, RE, MI, FA, SO, LA, SI;
}
enum의 간단한 메소드를 코드를 통해서 가볍게 살펴보자. 아까전에 있었던 Brand class 와 같이 보면
import java.util.Arrays;
public enum Brand {
SKT("에스케이"),LG("엘쥐"), KT("케이티");
private final String value;
Brand(String value){
this.value = value;
}
public String getValue() {
return value;
}
public static void main(String[] args) {
Brand[] brands = Brand.values();
System.out.println(Arrays.toString(brands));
for(Brand brand : Brand.values()){
System.out.println(brand.name() + "/"
+ brand.getValue() + "/"
+ brand.ordinal() + "/"
+ brand.getDeclaringClass() );
}
}
}