뭐든지시작이반이다
Dream Future
뭐든지시작이반이다
  • 분류 전체보기
    • Spring
      • 개념
      • 기타
    • Java
    • Algorithm
      • 알고리즘 정리
    • DB
      • Postgresql
    • 트러블슈팅
    • Git & Github
    • V&V
    • EFK
    • 북스터디
    • 기타

인기 글

최근 댓글

전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 태그
  • 방명록

태그

  • 알고리즘
  • lombok
  • gradle
  • ambiguous오류
  • 대규모서비스
  • multimodule
  • Controller
  • fluentd
  • requestmapping
  • docker
  • SelectionSort
  • 트러블슈팅
  • Kotlin
  • JPA
  • github
  • SqlSessionFactory
  • 파티셔닝
  • Kibana
  • spring-boot
  • gitignore
  • dirtyChecking
  • mybatis
  • sqlSessionTemplate
  • springboot
  • Hibernate
  • spring
  • git
  • springbot
  • auditing
  • efk
hELLO · Designed By 정상우.
뭐든지시작이반이다

Dream Future

Java

Enum 이란?

2022. 1. 29. 23:48

짬짬히 알게되는 부분에 대해 정리하려한다.

일단 Enum은 한국어로 열거형이라고 한다.

자바 5에서 추가된 자료형으로 의미가 부여된 이름을 갖는 상수를 선언하는 것을 목적으로 만들어졌다.

기본적인 문법은 다음과 같다.

public enum Role { 

    // Enumerated Value에서 소괄호를 통해 생성자에 인자를 전달할 수 있음.
    GUEST("ROLE_GUEST","손님"), // key:"ROLE_GUEST", title:"손님"
    USER("ROLE_USER","일반 사용자"); 

    String key;
    String title;
    
    private Role(String key, String title){
    	this.key=key;
        this.title=title;
    }
}

일단 위의 코드에서 GUEST, USER은 열거형 Role의 열거형 값(Enumerated Value)이라고 한다.

외부에서는 클래스의 필드 접근과 같이 Role.GUEST로 열거형 값에 접근할 수 있다.

 

enum의 생성자는 private이다. 따라서 enum 객체를 new로 생성하는 것은 컴파일 오류를 발생시킨다.

 

+) enum에 대한 사실

1. 모든 enum은 java.lang.Enum<E> 클래스를 상속하고, Enum<E>는 Object를 상속한다.

2. 그리고 두 열거형 값은 Role 인스턴스를 참조하는 변수이다. (이는 toString을 Overide 후 각 열거형 값을 콘솔에 출력해보면 마치 Role 객체를 출력할 때(toString이 불리는 것)의 행동과 똑같기 때문이다.)

 

내용 참고: 윤성우의 열혈 Java 프로그래밍

저작자표시 비영리 동일조건 (새창열림)
    뭐든지시작이반이다
    뭐든지시작이반이다
    기록장입니다.

    티스토리툴바