[Java] Enum 클래스의 개념과 사용
Programming Language/Java

[Java] Enum 클래스의 개념과 사용

728x90
반응형

 

 

최근 새롭게 자바 공부를 시작해서 프로그래밍을 하며 알게 된 지식들을 조금씩 블로그에 정리해보려 한다. 첫 번째는 Enum 클래스다.

 

📌 Enum의 의미와 개념

Enum이란 Enumeration의 앞글자로 '열거'라는 의미로 관련 있는 상수들의 집합을 나타내는 클래스이다. 대표적으로 요일이나, 계절 처럼 서로 의미있고 한정적인 데이터 집합들을 나타낼 때 사용한다. 클래스 내 선언하는 상수가 많아질수록 네이밍이 겹치는 것을 막고 상수값 관리를 용이하게 하기 위해  Class 대신 Enum을 사용한다.  Enum은 단순히 데이터의 집합이 아니라 온전한 클래스 형태로 보며 상태와 행위를 한 곳에서 관리할 수 있다는 특징이 있다. enum 생성자는 private으로 선언

 

 

📄 Enum을 사용하는 이유

아래 두 가지 예시는 동일한 기능을 하지만 class 대신 enum을 사용하는 이유는 아래와 같다.

①  코드의 단순화로 가독성 향상시킨다.

② 인스턴스의 생성과 상속을 방지한다.

③ enum 키워드를 사용함으로써 구현의 의도가 열거임을 분명히 나타낼 수 있다.

class Day{
    public final static Day MONDAY = new Day();
    public final static Day TUESDAY = new Day();
    public final static Day WEDNESDAY = new Day();
}

enum Day{
    MONDAY,TUESDAY,WEDNESDAY;
}

 

👩‍🏫 Enum 관련 메소드

values() : 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환합니다.

ordinal() : 해당 열거 객체의 인덱스를 반환하여, 전체 열거 객체 중 몇 번째인지 알려준다.

valueOf() : 전달된 문자열과 일치하는 해당 열거체의 상수를 반환합니다.

반응형