Java

[Java] Enum

boudle 2024. 9. 11. 22:00

Enum Type(열거형 타입)이란 무엇인가요? 언제 사용해야 하나요?

Enum(열거형 타입)**은 서로 관련된 상수들의 집합을 정의하는 특별한 데이터 타입입니다. Java에서 Enum은 특정한 이름을 가진 고정된 상수 집합을 정의할 때 사용되며, 각 상수는 Enum 타입의 인스턴스로 표현됩니다.

 

사용 시점

  • 고정된 상수 집합: 예를 들어 요일, 계절, 방향(북, 남, 동, 서) 등과 같은 고정된 상수 집합을 정의할 때 사용합니다.
  • 타입 안전성 보장: Enum을 사용하면 지정된 값들만 허용되므로, 잘못된 값이 사용되는 것을 방지할 수 있습니다.
  • 가독성과 유지보수성: 의미 있는 이름을 가진 상수를 사용하므로, 코드의 가독성을 높이고, 유지보수도 용이하게 만듭니다.

Enum의 장점은 무엇이며, 기존의 정수 상수와 비교했을 때의 차이점은 무엇인가요?

Enum의 장점

  1. 타입 안전성: Enum은 강타입(Strongly Typed) 구조를 가지고 있어 컴파일 시점에 타입 검사를 할 수 있습니다. 따라서 잘못된 값이 사용되는 것을 방지할 수 있습니다.
  2. 명확한 코드: 정수 상수 대신 의미 있는 이름을 사용할 수 있어, 코드의 가독성이 높아지고 의미가 명확해집니다.
  3. 내장된 기능: Enum은 기본적으로 toString(), ordinal(), valueOf() 등의 메서드를 제공하며, 이외에도 커스텀 메서드를 정의할 수 있습니다.
  4. 싱글톤 패턴과 유사한 구조: 각 Enum 상수는 인스턴스가 하나만 존재하므로, 싱글톤 패턴과 유사한 구조를 제공합니다.
  5. 정렬 및 비교: Enum은 Comparable 인터페이스를 구현하여 정렬 및 비교가 가능합니다.

 

 

설명

  1. Enum 상수: MONDAY, TUESDAY, ..., SUNDAY는 Day라는 Enum 타입의 상수입니다.
  2. 필드: koreanName은 각 요일의 한글 이름을 저장하는 필드입니다.
  3. 생성자: Day(String koreanName)은 Enum 상수가 생성될 때 각 상수에 대응되는 한글 이름을 초기화합니다.
  4. 메서드: getKoreanName() 메서드는 각 Enum 상수의 한글 이름을 반환합니다. toString() 메서드는 각 상수의 출력 형식을 정의합니다.

결론

  • Enum 타입은 상수들을 의미 있게 그룹화하고, 타입 안전성과 코드의 가독성을 높이는 데 사용됩니다.
  • 정수 상수와의 차이점: Enum은 타입 안전성을 보장하고, 디버깅과 유지보수에 더 유리한 장점을 제공합니다.
  • 필드와 메서드 정의: Enum에서 필드와 메서드를 정의할 수 있어, 상수와 관련된 추가적인 기능을 제공할 수 있습니다.

'Java' 카테고리의 다른 글

JSONObject  (0) 2025.05.19
[Java] 제너릭(Generics)  (0) 2024.09.11
전략패턴으로 코드 개선  (0) 2024.09.04
[Java] - Thread  (0) 2024.08.29
[Java] StringBuilder  (0) 2024.08.19