티스토리 뷰
[목표]
자바의 열거형에 대해 학습하기
[학습할 것]
-
enum을 정의하는 방법
-
enum이 제공하는 메소드 (values()와 valueOf())
-
java.lang.Enum
-
EnumSet
1. enum을 정의하는 방법
한정된 값만 가진 데이터를 열거 타입이라고 하며 요일이나 계절과 같은 것이 열거 타입에 해당될 수 있다.열거 타입(enumeration type)을 선언하기 위해서는 열거 타입 소스 파일을 생성해주어야 한다.관례적으로 열거 타입의 이름은 첫 문자를 대문자로 생성한다.
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
Enum을 사용하게 되면 타입을 통일할 수 있고 코드가 단순하고 가독성이 좋아지게 된다.
2. enum이 제공하는 메소드 (values()와 valueOf())
- values() : 모든 열거형 상수를 배열로 리턴
public class demo {
public static void main(String[] args) {
Week[] week = Week.values();
for (Week day : week) {
System.out.println(day);
}
}
}
- valueOf() : 열거형의 name과 일치하는 열거형 상수를 리턴
public class demo {
public static void main(String[] args) {
System.out.println(
}
}
3. java.lang.Enum
Enum 클래스는 모든 자바 열거체의 공통된 조상 클래스로 Enum 클래스에는 열거체를 조작하기 위한 다양한 메소드가 존재한다.
대표적인 Enum 클래스의 메소드는 다음과 같다.
메소드 | 설명 |
static E values() | 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환 |
static E valueOf(String name) | 전달된 문자열과 일치하는 해당 열거체의 상수를 반환 |
protected void finalize() | 해당 Enum 클래스가 final 메소드를 가질 수 없는 상태 |
String name() | 해당 열거체 상수의 이름을 반환 |
int ordinal() | 해당 열거체 상수가 열거체 정의에서 정의된 순서 (0부터 시작)를 반환 |
4. EnumSet
자바의 EnumSet은 Set 인터페이스를 기반으로 하면서 Enum 클래스의 상수로 구현된 것이다.
여기서 Set 인터페이스란 데이터를 중복으로 저장할 수 없고 순서가 보장되지 않는 자료구조를 말한다.
다른 컬렉션들과 다르게 EnumSet의 경우, new 연산자를 사용할 수 없다.
import java.util.EnumSet;
enum Fruit {
APPLE, BANANA, ORANGE, WATERMELON, STRAWBERRY;
}
public class EnumSetExample {
public static void main(String[] args){
EnumSet<Fruit> enumSet = EnumSet.allOf(Fruit.class);
System.out.println("Fruit : " + enumSet);
}
}
'Project > 자바 라이브 스터디' 카테고리의 다른 글
자바 라이브 스터디 #13 I/O (0) | 2021.03.05 |
---|---|
자바 라이브 스터디 #12 : 애노테이션 (0) | 2021.03.05 |
자바 라이브 스터디 #10 멀티쓰레드 프로그래밍 (0) | 2021.01.23 |
자바 라이브 스터디 #9 예외 처리 (0) | 2021.01.15 |
자바 라이브 스터디 #7 패키지 (0) | 2020.12.31 |