반응형
Enum 이란?
Enum은 열거형(enumrated type)이라고 부르며, 서로 연관된 데이터를 가진 상수들의 집합을 관리해주는 클래스입니다.
public enum Day {
월, 화, 수, 목, 금, 토, 일
}
Enum을 사용하면 다음과 같은 장점이 있습니다.
- Enum의 열거체를 비교할 때, 값뿐만 아니라 타입까지 체크하기 때문에 안정적입니다.
- 깔끔한 코드 작성이 가능합니다.
- 열거체를 값이 변경되더라도 다시 컴파일할 필요가 없습니다.
Enum 사용법
제가 생각하는 Enum의 가장 큰 장점은 열거체에 원하는 상수값을 명시할 수 있기 때문에, 값을 전달할 때 상수값이 무엇인지 신경 쓰지 않아도 된다는 것입니다. 아래의 코드를 보겠습니다.
public enum Day {
월(1), 화(2), 수(3), 목(4), 금(5), 토(6), 일(7); // 요일에 상숫값을 설정
private final int value;
Day(int i) {
this.value = i;
}
public int getValue() {
return value;
}
}
Enum 클래스를 생성하고 상숫값을 설정하면 메서드를 통해서 상수값을 호출할 수 있습니다.
만약 DB에서 요일을 int형으로 관리하고 있다면 DB에 값을 전달할 때, 어떤 상수값이 전달되는지 신경 쓰지 않아도 됩니다. 아래의 코드를 참고해주세요.
대표적인 Enum 메서드
values() | 열거체의 모든 상수를 가진 배열을 반환 | |
valueOf(String name) | 문자열과 일치하는 해당 열거체의 상수를 반환 | |
name() | 해당 열거체의 상수를 반환 | |
ordinal() | 열거체에서 정의된 상수를 0부터 차례대로 반환 |
Enum에서 기본적으로 제공하는 메서드가 여럿있지만, 상수를 클래스로 관리하기 때문에 개발자가 직접 정의한 메서드를 추가할 수 있다는 것이 큰 장점입니다.
반응형
'Programming > Java' 카테고리의 다른 글
[Java] 자바 람다식(Lambda Expression)이란? (0) | 2022.06.08 |
---|---|
[Java] 자바 내장 정렬 함수 - Arrays.sort() (0) | 2022.04.30 |
[Java] Setter를 사용할 때 주의할 점(Feat. 불변객체) (0) | 2022.03.17 |
[Java] 자바 환경변수 설정하기 (0) | 2022.03.16 |
자바 다형성(Polymorphism) (1) | 2021.01.09 |
댓글