개발 일지/Java

[Java] 열거형(enumerated type, enum)

미숫가루설탕많이 2023. 1. 4. 10:31

 열거형(enum)은 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 자바의 문법요소이다. 주로 서로 관련 있는 내용들을 모아서 한 번에 간편하게 관리할 때 사용한다.

 

 enum은 JDK 1.5 이상의 버전에서만 사용이 가능하다. 이전의 버전에는 enum 문법을 지원하지 않았기 때문에 여러 상수를 정의해서 사용하기 위해서는 public static final을 통해 전역변수로 상수를 설정해서 사용했다. 하지만 이러한 방식은 상수명이 중복되는 경우가 종종 발생할 수 있고 컴파일 에러를 유발한다. 이 문제는 인터페이스를 사용해서 상수를 구분함으로써 해결할 수 있지만, 타입 안정성이라는 새로운 문제가 발생한다. 따라서, 이러한 모든 문제를 해결하기 위해 만들어진 것이 enum이다.

 

 즉, 자바에서 열거형은 여러 상수들을 보다 편리하게 선언하고 관리할 수 있고, 상수명의 중복을 피하며, 타입에 대한 안정성을 보장한다. 또한, 다른 코드에 비해 훨씬 가독성이 좋은 코드를 작성할 수 있고 swich문에서도 작동이 가능하다.

 

 

 

특징

 

  1. 열거형으로 선언된 순서에 따라 index값을 가진다. (0부터 순차적으로 증가)
  2. enum 열거형으로 지정된 상수들은 관례적으로 모두 대문자로 선언한다.
  3. 열거형 변수들을 선언한 후에 세미콜론(;)을 붙이지 않는다.
  4. 상수와 특정 값을 연결시킬 경우에는 세미콜론(;)을 붙여줘야 한다.

 

 

열거형은 다음과 같이 정의하면 된다.

enum 열거형이름 { 상수명1, 상수명2, 상수명3, ...}

 

 열거형에 선언된 상수에 접근하려면 열거형이름.상수명 을 통해서 가능하다.

enum Seasons { SPRING, SUMMER, FALL, WINTER }

public class EnumExample {
    public static void main(String[] args) {
        Seasons favoriteSeason = Seasons.SPRING;
        System.out.println(favoriteSeason); // SPRING
    }
}

 

 

 

 

열거형에서 사용할 수 있는 메서드

 

리턴 타입 메서드(매개변수) 설명
String name() 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일
int ordinal() 열거 객체의 순번(0부터 시작)을 리턴
int compareTo(비교값) 주어진 매개값과 비교해서 순번 차이를 리턴
열거 타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴
열거 배열 values() 모든 열거 객체들을 배열로 리턴

 

'개발 일지 > Java' 카테고리의 다른 글

[Java] 에러(Error)  (0) 2023.01.04
[Java] 제네릭(Generic)  (0) 2023.01.04
[Java] 인터페이스(Interface)  (0) 2023.01.02
[Java] final 키워드  (0) 2023.01.02
[Java] 추상화(Abstraction)  (0) 2022.12.30