열거형(Enum)
열거형은 서로 연관된 상수들의 집합이다.
기본 예시)
enum Seasons {SPRING, SUMMER, FALL, WINTER}
//enum 열거형이름 {상수명1, 상수명2....}
Seasons.SPRING
// 열거형이름.상수명 - 상수에 접근
열거형으로 정의된 상수마다 첫 상수에 정수값 0이 할당되며 순서대로 다음 정수값이 할당된다.
열거형 메서드
리턴 타입 |
메서드 | 설명 |
String | name() | 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일합니다. |
int | ordinal() | 열거 객체의 순번(0부터 시작)을 리턴합니다. |
int | compareTo(비교값) | 주어진 매개값과 비교해서 순번 차이를 리턴합니다. |
열거 타입 |
valueOf(String name) | 주어진 문자열의 열거 객체를 리턴합니다. |
열거 배열 |
values() | 모든 열거 객체들을 배열로 리턴합니다. |
열거형 메서드와 스위치문등 사용 예시)
class Enums{
enum Season {SPRING,SUMMER,AUTUMN,WINTER}; // 자바11에서는 열거타입을 전역변수로만 선언이 가능하다
public Enums() {
// 상수들을 배열에 옴긴뒤 for문 실행
Season[] seasons = Season.values();
for(Season value : seasons){
System.out.printf("%s = %d \n",value.name(),value.ordinal()); //열거형 객체의 메서드
}
//열거형을 이용한 switch문
switch (Season.SUMMER) {
case SPRING:
System.out.println("봄");
break;
case SUMMER: System.out.println("여름");
break;
case AUTUMN: System.out.println("가을");
break;
case WINTER: System.out.println("겨울");
break;
}
}
}
switch문의 경우 enum을 이용하면 바로 사용이 가능하지만 for문의 경우 상수들을 배열에 옴겨준뒤 사용이 가능하다.
'Java > Java' 카테고리의 다른 글
try(), catch() - 예외 처리(Exception Handling) (0) | 2023.03.07 |
---|---|
제네릭 (Generic) (0) | 2023.03.07 |
의존성 주입(Dependency Injection, DI) (0) | 2023.03.05 |
복사 생성자와 싱글톤 (0) | 2023.03.05 |
객체지향 프로그래밍 심화(다형성, 추상화) (0) | 2023.03.01 |