728x90
열거형 : 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유리하다.
1️⃣ 특징
- 열거형의 상수간의 비교에는 "=="이 사용가능하다 (빠른 성능을 제공한다)
- <,>와 같은 비교연산자는 사용이 불가능 하지만 compareTo()는 이용이 가능하다
- 열거형 상수 하나하나각 각 클래스의 객체이다
2️⃣ 사용법
- 정의 : enum 열거체이름 { 상수이름, 상수이름,... }
- 사용법 : 열거체 이름. 상수이름
3️⃣ enum 메서드
- ordinal() : 열거체에서 정의된 순서를 반환한다.(0부터 시작한다)
- valuOf(상수) : 상수 반환
- values() : 열거체의 모든 상수를 저장한 배열을 반환
import java.util.Arrays;
public enum Prize {
first(6, false, 2_000_000_000),
second(5, true, 30_000_000),
third(5, false, 1_500_000),
fourth(4, false, 50_000),
fifth(3, false, 5_000),
etc(0, false, 0); //세미콜론 찍어야 한다.
private final int matchPoint;
private final boolean bonusMatchPoint;
private final int money;
//생성자는 제어자가 묵시적으로 private로 선언한다.
Prize(int matchPoint, boolean bonusMatchPoint, int money) {
this.matchPoint = matchPoint;
this.bonusMatchPoint = bonusMatchPoint;
this.money = money;
}
//로또의 당첨 번호와 보너스 당첨번호에 따라 당첨 금액을 리턴한다.
public static Prize findPrize(int matchPoint, boolean bonusMatchPoint) {
return Arrays.stream(values())
.filter(Prize -> Prize.matchPoint == matchPoint)
.filter(Prize -> Prize.bonusMatchPoint == bonusMatchPoint)
.findAny()
.orElse(etc);
}
public int getMatchPoint() {
return matchPoint;
}
public boolean isBonusMatchPoint() {
return bonusMatchPoint;
}
public int getMoney() {
return money;
}
}
✨참고✨
https://mine-it-record.tistory.com/133
http://www.tcpschool.com/java/java_api_enum
자바의 정석 3판
728x90
'JAVA' 카테고리의 다른 글
Stream 스트림 (0) | 2023.03.19 |
---|---|
람다식(Lambda Expression) (1) | 2023.03.08 |
ArrayList와 LinkedList (0) | 2023.02.24 |
오버로딩과 오버라이딩 (0) | 2023.02.22 |
Array 배열 복사의 4가지 방법 (0) | 2023.02.10 |
댓글