Enum ?

김수환·2023년 10월 6일
0

Enum

Enumeration :
셈, 열거, 계산, 목록

  • 관련이 있는 상수들의 집합
  • 어떤 클래스가 상수로만 작성되어 있으면 class로 선언할 필요가 없음
  • enum 클래스를 활용해 상수들의 집합을 사용하자.

Enum 왜 써야 할까?

public static final int male = 1;
public static final int female = 2;

public static final int dog = 1;
public static final int cat = 2;

위와 같은 방법을 int enum 패턴이라고도 한다.

  • 컴파일 시점 상수 이기 때문에 해당 상수를 사용하는 클라이언트 코드와 동시에 컴파일 된다.
    -> 프로그램이 깨지기 쉽다.
  • 같은 상수명을 갖는 다른의미의 값이 존재하거나 다른 상수명이지만 같은 값을 가지는 경우가 있을 수 있다.
  • 각각의 상수들은 자신을 인스턴스화 한 값을 할당한다.
    (male와 dog은 서로 다른 데이터를 의미하는데 비교할 경우)

그래서 Enum은?

  • 코드의 가독성이 올라간다.
  • 인스턴스 생성, 상속을 방지하며 상수값의 타입 안전성이 보장된다.
  • enum이라는 키워드로 열거형의 의도를 명확히 드러낸다.
enum Gender {
    male(1), female(2);

    private int Gender;

    Gender(int type) {
        gender = type;
    }

    public int get() {
        return Gender;
    }
}

사실 enum과 static으로 선언한 상수는 목적이 다르다.
enum은 연관된 상수들을 묶어서 추상화 시킨 거고 상수는 값의 재할당을 막기 위해 존재한다.

profile
hello human

0개의 댓글