본문 바로가기

IT/자바

자바 열거 타입 (enum)

프로그래밍을 하다 보면 반드시 하나의 값만 가지게 될 변수들을 모아놓아야 할 때가 있을 것입니다.
예를 들어, 요일, 태양계, 무지개의 색 구성 등 정해진 값 외에 바뀌지 않는 것들의 집합을 말합니다.

이러한 것들을 열거해놓아 한꺼번에 묶어놓은 형태를 열거형이라고 하며, enum을 통해 선언이 가능합니다.
위와 같이 변하지 않는 값들을 변수라고 부를 수 없기 때문에, 이들을 "상수(constant)"라고 부릅니다.

상수에 대해서 따로 포스팅할 예정은 없는데, const 다음 자료형과 변수 이름을 적음으로써 선언이 가능합니다.

검색유도: 자바 열거형, 자바 열거 타입, 자바 enum, java enum, 자바 enum 메서드, 자바 enum 관련 메소드
                name 메소드, ordinal 메소드, compareTo 메소드, valueOf 메소드, values 메소드, java enumuration
(검색유도는 네이버 검색할 때 노출되게 하기 위한 것이 아니라 블로그 내부 검색 기능을 위해 적어놓습니다.)

컴퓨터 공학을 배우는 학생으로서 지적, 피드백 감사히 받으니 주저 말고 댓글로 남겨주시길 바랍니다.
(맞춤법 지적, 더 효율적인 코드, 대체 가능한 키워드 등 이런 것에 관해선 겸손하지 않으셔도 됩니다.)

다른 프로그래밍 언어에서의 enum
열거형의 선언
public class goodsc { public enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, NAVY, PURPLE } public static void main(String arg[]) { Rainbow color = Rainbow.NAVY; System.out.println("Its Color: " + color); } }
출력 결과

열거형은 enum 이라는 키워드를 사용하여 선언하며, enum 은 "enumeration"의 약자입니다.
enum 을 반드시 메인 메서드 밖에 선언해야 할 필요는 없지만, 일반적으로는 밖에 선언합니다.

enum 을 구성하는 성분들은 수정해야 할 필요가 없을뿐더러 코드의 지역에 제한되어서는 안되기 때문입니다.
상수 데이터는 어떤 값에게 "명칭"을 달아주는 것과 같은데, 이러한 명칭은 여러 클래스와 메서드에 쓰이기에 전역으로 선언합니다.

저는 enum(이넘)이라고 부르지만, 열거 타입, enum 의 해석 차이일 뿐이기에 모두 같은 표현으로 취급합니다.
(리스트를 발음 그대로 부르기도 하지만, 배열이라고 부르기도 하는 것처럼 해석의 차이라고 볼 수 있습니다.)

public class goodsc { public enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, NAVY, PURPLE } public static void main(String arg[]) { Rainbow color = Rainbow.NAVY; if (color == Rainbow.NAVY) { System.out.println("Good Color."); } else { System.out.println("It's wrong choice.."); } } }

당연한 이야기겠지만 enum 의 필드값으로 선언된 데이터들도 데이터이기 때문에
비교 연산자를 사용하여 같은지 다른지를 확인하는 것 이 가능합니다.

enum 과 관련된 메소드 소개
public class goodsc { public enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, NAVY, PURPLE } public static void main(String arg[]) { Rainbow color = Rainbow.NAVY; String name = color.name(); System.out.print("name(): "+name); //열거형의 이름을 반환해주는 메서드. int ord = color.ordinal(); System.out.print("ordinal(): "+ord); //열거형의 성분이 어디 위치에 있는지 그 순서를 알려주는 메서드. Rainbow vlo = Rainbow.valueOf("BLUE"); //valueOf의 파라미터와 비교하교하여 성분이 같은 것을 반환하는 메서드. Rainbow[] colors = Rainbow.values(); //enum 안의 성분들을 모두 반환하여 배열로 만드는 메서드. } }

[출처] 자바 열거 타입 (enum)|작성자 BQ Lab https://beaqon.blog.me/221049167770



'IT > 자바' 카테고리의 다른 글

열거형 예제 3  (0) 2018.05.08
열거형의 활용  (0) 2018.05.08
enum (Enumeration) 인터페이스 정리  (0) 2018.05.08
[Java 강의70] 자바 GUI JFrame 크기,위치 및 좌표계  (0) 2018.05.08
키 테스트(움직임)  (0) 2018.05.08