[Java] 열거형(Enum)

Pongchi·2022년 12월 19일

Java의 정석

목록 보기
5/6
post-thumbnail

정의

JDK 1.5 이상부터 사용 가능한 문법이다.
"Enumeration"의 약자인 enum을 사용하며, enum은 요소 또는 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다. 열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자다.


특징

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

기본 사용법

public enum Fruit {
	APPLE, BANANA, MELON
}

public static void main(String[] args) {
	Fruit fruit = Fruit.APPLE;
    System.out.println(fruit);	// APPLE
}

value를 가진 사용법

public enum Fruit {
	APPLE("사과"),
    BANANA("바나나"),
    MELON("멜론");
    
    private final String value;
    private Fruit(String value) { this.value = value; } // private 키워드 생략 가능
    
    public String getValue() { return value; }
}

public static void main(String[] args) {
	System.out.println(Fruit.APPLE.getValue); 	// 사과
}

enum 클래스 메서드

values()

public void main(String[] args) {
	for (Fruit fruit : Fruit.values()) {
    	System.out.println(fruit.getValue()); // 사과 바나나 멜론
    }
}

모든 열거형을 꺼내올 수 있다.

ordinal()

public void main(String[] args) {
	System.out.println(Fruit.APPLE.ordinal()); // 0
    System.out.println(Fruit.BANANA.ordinal()); // 1
    System.out.println(Fruit.MELON.ordinal()); // 2
}

해당 상수의 index 값을 가져온다.

비교하기

  • 열거형끼리의 >, < 같은 대소 비교 연산자는 사용할 수 없다.
  • 하지만 compareTo() 메소드를 오버라이드하여 비교할 수 는 있다.
  • == 으로 같은지 비교할 수는 있다. 추가로 equals() 메소드로도 같은지 확인할 수 있다.

Reference

profile
- I'm going to be a ???

0개의 댓글