JAVA

자바 JAVA 열거 타입 (enum)

수진97 2025. 11. 23. 18:30

안녕하세요!

이번 포스팅은 자바의 열거 타입 enum에 대해 포스팅해 보겠습니다!

 

 

1. 열거 타입(enum)

1) 개념

제한된 수의 일이나 사건을 숫자로 표현하니 각 숫자에 대해 부여된 의미를 개발자가 모두 숙지하고 있어야 해서 사건에 대한 경우의 수가 많다면 개발자 관점에서는 불편함.

 

그래서 자바 5부터 열거 타입 제공

=> 서로 연관된 사건들을 모아 상수로 정의한 java.lang.Enum 클래스의 자식 클래스

 

 

 

2) 선언 및 사용 방법

- enum 열거타입이름 { 상수목록 }

- enum은 컴파일 시점에 JVM에 의해 미리 자동 생성된 상수 객체들을 제공하는 특수 클래스

- 개발자는 직접 객체를 생성(new) 하지 않고, enum 타입 이름과 상수 이름을 사용하여 상수를 참조

 

 

 

3) enum 특징

- 일종의 클래스 타입인 열거 타입도 생성자, 필드, 메서드를 가질 수 있음.

- 열거 타입의 각 상수는 생성자로 만들어진 객체(인스턴스) 임.

- 생성자, 필드 및 메서드와 열거 타입 상수를 서로 구분하기 위해 열거 타입 상수 뒤에 반드시 세미콜론을 추가하여 구분

 

 

*주의

enum의 경우 불변하는 상수 객체이기 때문에 외부에서 수정할 수 있는 setter를 쓰는 것은 잘못된 방식

만약 새로운 필드를 추가하여 이 필드에 대한 초기화를 하고 싶다면, 생성자 호출과 동시에 필드를 초기화하도록 생성자의 매개변수로 받고, final 처리를 해주어야 함.