열거형(enums)이란 ?

JoongHyeok.Velog·2022년 1월 31일
0

Java

목록 보기
2/5
post-thumbnail

열거형이란 ?

열거형은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 원래 자바는 C언어와 달리 열거형이라는 것이 존재하지 않았으나 JDK1.5부터 새로 추가되었다. 자바의 열거형은 C언의 열거형보다 더 향상된 것으로 열거형이 갖는 값뿐만 아니라 타입도 관리하기 떄문에 보다 논리적인 오류를 줄일 수 있다.

열거형의 정의와 사용

열거형을 정의하는 방법은 간단하다. 다음과 같이 괄호 {} 안에 상수의 이름을 나열하기만 하면 된다.

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

예를 들어 동서남북 4방향을 상수로 정의하는 열거형 Direction은 다음과 같다

enum Direction {EAST,WEST,SOUTH,NORTH}

이 열겨형에 정의된 상수를 사용하는 방법은 '열거형이름.상수명'이다. 클래스의 static 변수를 참조하는 것과 동일하다.

class Unit{
	int x,y; //유닛의 위치
    Direction dir; //열거형을 인스턴스 변수로 선언
    
    void init(){
    	dir = Direction.EAST; //유닛의 방향을 EAST로 초기화
    }
}

열거형 상수간의 비교에는 '=='를 사용할 수 있다. equals()가 아닌 '=='로 비교가 가능하다는 것은 그만큼 빠른 성능을 제공한다는 얘기다.
그러나 '<', '>'와 같은 비교연산자는 사용할 수 없고 compareTo()는 사용가능하다.

Enum 의 장점

Enum을 사용해 우리가 얻을수 있는 이점은 다음과 같습니다.

  • 코드가 단순해지며,가독성이 좋습니다.
  • 인스턴스 생성과 상속을 방지하여 상수값의 타입안정성이 보장됩니다.
  • enum class를 사용해 새로운 상수들의 타입을 정의함으로 정의한 타입이외의 타입을 가진 데이터를 컴파일시 체크한다.
  • 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 알 수 있습니다.
profile
영차영차

0개의 댓글