열거형(enum)
- 관련된 상수들을 같이 묶어 놓은 것
- Java는 타입에 안전한 열거형을 제공한다.(값 & 타입 모두 체크)
if(Card.CLOVER==Card.TWO) // true지만 false이어야 의미상 맞음
if(Card.Kind.CLOVER==Card.Value.TWO) { // 컴파일 에러. 타입이 달라서 비교 불가
열거형의 정의와 사용
열거형을 정의하는 방법
enum 열거형이름 { 상수명1, 상수명2, ... }
열거형 타입의 변수를 선언하고 사용하는 방법
열거형 상수의 비교에 ==와 compareTo() 사용가능
열거형의 조상
- java.lang.Enum
모든 열거형은 Enum의 자손이며, 아래의 메서드를 상속받는다.
values(), valueOf()는 컴파일러가 자동으로 추가
열거형에 멤버 추가하기
불연속적인 열거형 상수의 경우, 원하는 값을 괄호 안에 적는다.
// 여러개도 가능
EAST(1, ">") // 사실 이것은 생성자 호출이다.
괄호를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해 줘야 한다.
열거형의 생성자는 묵시적으로 private이므로, 외부에서 객체생성 불가
'JAVA' 카테고리의 다른 글
[지네릭스] 애너테이션 (0) | 2023.03.20 |
---|---|
[지네릭스] 지네릭스 (0) | 2023.03.15 |
스트림(Stream) (0) | 2023.03.14 |
람다(Lambda) (0) | 2023.03.13 |
[java.math] BigInteger, BigDecimal (0) | 2023.03.09 |