블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total659,145
Today28
Yesterday31
사계절이나, 요일, 달 등은 명확한 데이터값을 가지고 구분이 되는 데이터들 중 하나이다. 이러한 종류의 데이터들을 사용하기 위해서 변수명과 정수의 숫자들을 대입하여, 데이터들을 구분할 수 있었다. 그러나 그 값이 정수라는 것이 조금은 불편하게 느껴질 때도 있었다. JDK 5.0 에서부터는 이러한 문제들을 개선하기 위한 새로운 데이터 형을 제안하였다.


열거타입의 데이터 사용.
열거타입은 정해진 데이터를 구분하기 위해 변수명에 정수를 대입해서 사용하는 대신에, 데이터와 변수명을 동일하게 사용하게 된다. 하나의 묶음으로 선언되는 열거타입의 데이터를 자바에서는 클래스의 하나로 인식을 하고 실행하게 된다. 사계절이란 열거타입을 선언하는 방법은 다음과 같다.

enum 사계절 {
    봄, 여름, 겨울, 가을
}

언뜻 보면 배열의 선언 방법과 매우 비슷하다. 사용법이나 구성도 매우 비슷하긴 하지만, 그 값이 인덱스값이라는 점에서는 차이가 있다. 열거 타입으로 선언한 '사계절'에서 '여름'의 데이터를 사용하고 싶다면,

사계절 season = 사계절.여름;

과 같은 방법으로 선언하고 사용하는 것이 가능하다. season 이라는 변수안에 '여름' 의 열거타입 데이터가 들어가 있는 것이다.


클래스 내부에서의 열거타입.
만일 클래스 내부에서만 열거타입의 데이터를 사용하고 싶다면 클래스 내부에서 선언을 하면 된다. 하지만, 다른 클래스에서 이 열거타입의 데이터를 사용하고자 한다면, 클래스 이름을 통해 접근을 하는 것도 가능하다.

class 좋아하는것 {
    enum 사계절 {
        봄, 여름, 가을, 겨울
    }
}

좋아하는것.사계절.봄;


기본으로 생성되는 values(), valueOf() 메소드.
열거타입을 선언하고 사용하게 되면 values() 와 valueOf() 라는 메소드가 기본적으로 생성이 된다. values() 메소드는 열거타입안에 선언된 모든 데이터를 배열의 형태로 반환해주는 역할을 하게 되고, valueOf() 메소드는 열거타입 상수를 인자로 넘겨주면 그 값을 리턴해 주는 역할을 한다.


다른값을 갖는 열거타입.
열거타입의 변수를 선언하게 되면, 그 값과, 인덱스(또는 키)가 동일한 값을 갖게 된다. '사계절'에 '여름'을 저장하면 '여름' 이라는 값만을 반환하게 되는 것이다. 만일 '여름' 이라는 데이터를 호출할때 'summer' 이라는 데이터를 갖고 싶다면, 다음과 같은 방법을 활용할 수 있다.

enum 사계절 {
    봄("spring"), 여름("summer"), 가을("fall"), 겨울("winter");
    final private String name;
    사계절(String name) {
        this.name = name;
    }
    String value() {
        return name;
    }
}

위의 방법은 생성자 파라미터 값으로 각 데이터 값을 전달해 줌으로써 value() 라는 메소드로 연관된 값을 반환 받는 것이다. name 변수명이나 value() 메소드의 경우는 개발자가 임의의 이름으로 변경하여 사용하는 것이 가능하다. 이러한 방법은 열거타입을 좀더 다양하게 사용할 수 있는 방법을 제시해 줄 것이다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함