상수값으로써 배포용으로 사용됩니다.
요일, 사계절 등의 정해진 값이나, 혹은 프로그램상으로 정해놓은 값을 배포 할 때 사용됩니다.
상수값으로 사용되는 가장 대표적인 값이 원주율을 나타내는 PI(3.14)값이라고 할 수 있겠습니다.
PI값과 같이 변경되어서는 안되는 값을 상수값으로 만들어서 사용하게 됩니다.
자바에서는 enum type과 static final 키워드를 통해서 이러한 상수값을 제공합니다.
enum type은 자바 1.5버전이후부터 생긴 type으로써 static final로 부족한 부분을 위해 만들어진 type이라고 생각합니다.
static final을 이용하여 많은 상수값이 있을 때 지정하는 것보다는 enum type을 이용해서 지정하는게 더 간편하고 성능면에서도 빠릅니다.
예를 들면 마차가 세상에서 가장좋은 운송수단이었을 때 자동차가 나왔다고 할 수 있겠내요. ㅎㅎ(음... 겪차가 너무 심한가요...)
static final과 enum type은 클래스나 인터페이스에 종속되어서 사용되게 됩니다.
static final의 경우 변수선언시 static final키워드를 붙여서 만들어서 사용하면 됩니다.
enum타입의 경우 다음과 같은 형식으로 사용됩니다. 상수값은 기본적으로 대문자를 사용합니다.
enum 식별자{상수값,상수값}
기본적으로 enum타입에는 values(), valueOf()메소드를 제공합니다.
values()메소드는 선언된 enum타입에 있는 상수값을 모두 가져오는 메소드이고, valueOf()메소드는 전달인자로 해당 상수값의 이름을 보내면 그 상수값을 반환 받는 메소드입니다.
추가적으로 enum타입에는 열거상수를 다른 값과 연관지을 수가 있습니다.
각 상수값에 (연관지을데이터)형식으로 넣고, final private 으로 연관지을 데이터를 받을 데이터를 만듭니다. 그 후 그 데이터를 받는 생성자를 만들어서 값을 넣게 됩니다.
각각의 상수값에 연관된 데이터를 얻기 위해서는 get메소드를 추가하여야 합니다.
생성자의 접근범위는 package와 private이만 가능합니다.
enum타입의 경우 value값을 주기 위해 멤버필드를 선언해서 사용하는데 그 때 final변수로 선언하지 않게 되면 변경이 가능해집니다. 그렇기 때문에 final을 꼭 써야합니다.
enum타입의 경우 최초호출시 생성자를 호출해서 값을 셋팅하고 상수풀에 저장이 됩니다. 그 이후의 호출에서는 상수풀에 있는 enum값을 가져와서 쓰게 됩니다.
예로 인터페이스에 한번 static final과 enum type을 인터페이스에 상수값만을 나타내 보았습니다.
'IT > 개발' 카테고리의 다른 글
자바 파일 입출력(File IO) (0) | 2013.08.22 |
---|---|
Wrapper 클래스(Wrapper class) (0) | 2013.08.21 |
오버라이딩(overriding) (0) | 2013.08.17 |
객체(object) 캐스팅(casting) (0) | 2013.08.17 |
인터페이스(interface) (0) | 2013.08.16 |