enum(열거형)

조용근·2024년 2월 7일

자바 정리

목록 보기
18/21

enum고정된 상수들의 집합을 정의할 때 사용한다. 'enum'을 사용하면 관련 있는 상수들을 그룹으로 묶어서 코드의 가독성을 높이고, 오류를 줄일 수 있다.

enum의 특징

* 타입 안정성: enum은 자바의 타입 시스템의 일부이므로, 정의한 enum 타입의 변수에는 그 enum의 값만 할당할 수 있습니다. 이는 잘못된 값이 할당되는 것을 컴파일 시점에서 방지합니다.
* 네임스페이스 제공: enum의 각 상수는 enum 이름으로 한정되므로 이름 충돌을 방지합니다.
* 객체 지향적 기능: enum은 메서드와 필드를 가질 수 있으며, 인터페이스를 구현하거나 추상 메서드를 가질 수도 있습니다.

public enum Grade{
	BRONZE, SILVER, GOLD
}

위 코드에서 'Grade'라는 'enum'을 정의했고, 이 안에 3개의 등급을 상수로 선언했다.

'enum' 사용 방법

Grade myGrade = Grade.GOLD;

myGrade 변수는 'Grade', 'enum'에서 선언된 값 중 하나를 가질 수 있다.

'enum'의 고급 기능

'enum'd에 메서드를 추가할 수 있다.

public enum Grade {
    BRONZE(1), SILVER(2), GOLD(3);

    private final int value;

    Grade(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

각 enum 상수는 연관된 int 값을 가진다. 이를 통해 enum 상수에 더 의미를 부여할 수 있다.

swith 문에서의 사용

switch(myGrade) {
    case BRONZE:
        // BRONZE 등급에 대한 처리
        break;
    case SILVER:
        // SILVER 등급에 대한 처리
        break;
    // ... 나머지 경우에 대한 처리
}
profile
Today I Learn

0개의 댓글