일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 합성곱 신경망
- 디자인 패턴
- 차원축소
- Machine Learning
- java
- 기계학습
- 코딩테스트실력진단
- python
- 코테
- NumPy
- numpy 기초
- 코드트리
- ack
- c++
- 넘파이
- 넘파이 배열
- 자바
- 데이터 마이닝
- 넘파이 기초
- 네트워크 기초
- cpp class
- 데이터 분석
- 파이썬
- 머신러닝
- OOP
- cpp
- 코딩테스트
- Design Pattern
- 클러스터링
- lambda
- Today
- Total
준비하는 대학생
[JAVA] enum (열거형) 본문
Enum이란?
Enum은 열거형이라고도 불리며, 여러 개의 상수 값을 갖는 특별한 데이터 타입입니다. Enum을 사용하면 코드의 가독성을 높이고, 값의 범위를 제한하여 오류를 줄일 수 있습니다.
예를 들어, 사계절을 나타내는 Season이라는 Enum을 생성한다고 가정해 봅시다. 일반적인 상수 정의를 사용하는 경우 다음과 같이 작성할 수 있습니다.
public static final int SPRING = 0;
public static final int SUMMER = 1;
public static final int FALL = 2;
public static final int WINTER = 3;
그러나 이 방법은 여러 가지 문제점이 있습니다. 예를 들어, 정수 타입이기 때문에 0~3 이외의 값도 할당될 수 있는 위험이 있습니다. 이런 문제를 해결하기 위해 Enum을 사용해보겠습니다.
Enum 사용하기
Enum을 사용하려면 먼저 Enum 타입을 정의해야 합니다. Enum 타입은 'enum' 키워드를 사용하여 선언하며, 각 상수 값을 콤마로 구분합니다. 예를 들어, Season Enum은 다음과 같이 작성할 수 있습니다.
public enum Season {
SPRING, SUMMER, FALL, WINTER
}
enum을 사용하면, Season 변수에는 오직 SPRING, SUMMER, FALL, WINTER 중 하나의 값만 할당될 수 있습니다. 이를 통해 값의 범위를 제한하고, 코드의 안전성을 높일 수 있습니다
Season currentSeason = Season.SPRING;
enum 상수는 대문자로 작성하는 것이 일반적인 관례입니다. 또한 Enum은 메서드와 필드도 가질 수 있으며, 생성자를 통해 초기화할 수도 있습니다.
public enum Season {
SPRING("봄"),
SUMMER("여름"),
FALL("가을"),
WINTER("겨울");
private String koreanName;
Season(String koreanName) {
this.koreanName = koreanName;
}
public String getKoreanName() {
return koreanName;
}
}
정리: Enum과 스위치문
Enum과 스위치문을 함께 사용하면 코드의 가독성과 유지 보수성을 크게 높일 수 있습니다. 예를 들어, 계절에 따른 날씨를 설명하는 메서드를 작성한다고 가정해봅시다.
public static String getWeatherDescription(Season season) {
switch (season) {
case SPRING:
return "따뜻한 햇살과 부스스한 꽃향기 가득한 계절";
case SUMMER:
return "폭염에 무더운 날씨, 여름철 시원한 물놀이 시즌";
case FALL:
return "서늘한 바람과 함께 아름다운 단풍이 펼쳐지는 계절";
case WINTER:
return "추운 날씨에 눈이 내리며 겨울 왕국이 펼쳐지는 계절";
default:
throw new IllegalArgumentException("잘못된 계절이 전달되었습니다.");
}
}
Enum과 스위치문을 사용하면, 코드를 이해하기 쉽고 수정하기도 간편합니다. 또한 컴파일러가 잘못된 값이 할당되지 않도록 도와줍니다.
Enum의 메서드
Enum은 기본적으로 몇 가지 메서드를 제공합니다. 다음은 몇 가지 유용한 Enum 메서드입니다.
1. values(): Enum의 모든 상수 값을 반환합니다. 이 메서드를 사용하면 Enum 상수를 반복하거나 특정 조건에 따라 필터링할 수 있습니다.
for (Season season : Season.values()) {
System.out.println(season);
}
2. valueOf(String name): 주어진 문자열과 일치하는 Enum 상수를 반환합니다. 이 메서드를 사용하면 문자열을 Enum 상수로 변환할 수 있습니다.
String input = "SUMMER";
Season season = Season.valueOf(input);
System.out.println(season); // 출력: SUMMER
주의: valueOf() 메서드는 대소문자를 구분합니다. 만약 일치하는 상수가 없는 경우 IllegalArgumentException을 던집니다.
3. ordinal(): Enum 상수의 순서를 반환합니다. Enum 상수는 0부터 시작하는 인덱스를 가지며, 이 인덱스는 ordinal() 메서드를 통해 조회할 수 있습니다.
System.out.println(Season.SPRING.ordinal()); // 출력: 0
System.out.println(Season.SUMMER.ordinal()); // 출력: 1
이상으로 Java의 Enum에 대해 살펴보았습니다. Enum을 활용하면 코드의 안전성과 가독성을 높이는 데 큰 도움이 됩니다.
요약
이 포스트에서는 Java의 Enum에 대해 알아보았습니다. Enum은 다음과 같은 이점을 제공합니다.
- 코드의 가독성과 안전성을 높입니다.
- 상수 값을 제한하여 범위를 명확히 할 수 있습니다.
- Enum과 스위치문을 함께 사용하여 간결하고 명확한 코드를 작성할 수 있습니다.
- Enum은 필드, 메서드, 생성자를 가질 수 있어 더 복잡한 상수 관리가 가능합니다.
- 기본적으로 제공되는 메서드로 인해 Enum 상수를 쉽게 조작할 수 있습니다.
감사합니다.
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 람다 표현식 (0) | 2023.04.17 |
---|