[Java] Enum

lkc9898·2022년 6월 13일

Java

목록 보기
25/25
post-thumbnail

enum이란?

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

enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미한다. JDK 1.5 이전에는 enum을 지원하지 않았고 여러 상수를 정의해서 사용하기 위해 public static final을 통해 전역변수로 상수를 설정하여 사용했지만, 상수명이 중복되거나, 인터페이스를 사용해 문제를 해결해도 타입 안정성에 문제가 생기는 등 이러한 단점을 보완하기 위해 새롭게 추가된 것이 enum이다.

사용 예시 1

enum Seasons{ SPRING, SUMMER, FALL, WINTER }
// 상수는 대소문자 모두 작성 가능하지만 관례적으로 대문자로 작성.

public class EnumExample {
	public static void main(String[] args) {
    	Seasons favoriteSeason = Seasons.SPRING;
    	System.out.println(favoriteSeason); //SPRING
    }
}

enum에 정의된 상수는 클래스의 static 변수를 참조하는 것과 동일한 방법으로 사용할 수 있다. 즉, 열거형이름.상수명으로 참조할 수 있다.

사용 예시 2

enum Level {
	LOW,
    MIDIUM,
    HIGH
}

public class Main {
	public static void main(String[] args) {
    	Level level = Level.MIDIUM;
        
        switch(level) {
        	case LOW : 
            	System.out.println("Low level");
            	break;
            case MEDIUM :
            	System.out.println("Medium level");
              	break;
            case HIGH :
            	System.out.println("High level");
                break;
        }
    }
}
// 출력 : Medium level

enum 메서드

메서드 (매개변수)리턴 타입설명
name()String열거 객체가 가지고 있는 문자열을 리턴하며,
리턴되는 문자열은 정의할 때 사용한 상수 이름과 동일
ordinal()int열거 객체의 순번을 리턴
compareTo(비교값)int주어진 매개값과 비교해서 순번 차이를 리턴
valueOf(String name)열거 타입주어진 문자열의 열거 객체를 리턴
values()열거 배열모든 열거 객체들을 배열로 리턴

0개의 댓글