Java 26(열거형 Enumerate)

Kang.__.Mingu·2024년 5월 10일
0

Java

목록 보기
28/108

열거형의 매개변수가 없는 상수필드

  • 열거형의 상수필드는 기본적으로 정수형(int)으로 설정되어 첨자가 초기값으로 자동 저장
  • 매개변수가 없는 생성자를 사용하여 상수필드 생성
  • EAST, WEST, SOUTH, NORTH;

열거형의 매개변수가 있는 상수필드

  • 상수필드명(매개변수)
  • EAST("East"), WEST("West"), SOUTH("South"), NORTH("North");

상수필드에 원하는 자료형의 값을 저장하는 방법

  • final 제한자를 사용하는 것을 권장
  • final 제한자로 필드를 작성하면 반드시 매개변수가 있는 생성자를 사용해 필드 초기화 처리
  • Setter 메소드는 사용할 수 없고 Getter 메소드만 사용 가능 => final 제한자를 사용했기 때문에 Setter는 불가능

상수필드 생성하기 위한 생성자 생성 방법

  • 매개변수로 전달받은 값으로 필드 초기화 처리해야됨
  • 상수필드를 생성하기 위한 생성자이므로 접근제한자는 private로 설정

- Compass(Enum)

public enum Compass {
	private final String value;

    // => 상수필드를 생성하기 위한 생성자이므로 접근 제한자를 [private]으로 설정
    private Compass(String value) {
        this.value = value;
    }

	// 매개변수가 있는 생성자를 사용하여 상수필드 생성
    EAST("East"), WEST("West"), SOUTH("South"), NORTH("North");


    public String getValue() {
        return value;
    }
}

- CompassApp(Class)

public class CompassApp {
    public static void main(String[] args) {
        // 열거형의 상수필드 출력 - 상수필드의 이름 출력
        System.out.println("동쪽 = " + Compass.EAST);
        System.out.println("서쪽 = " + Compass.WEST);
        System.out.println("남쪽 = " + Compass.SOUTH);
        System.out.println("북쪽 = " + Compass.NORTH);
        System.out.println("===========================================================");
        // Enumerate.values(): 열거형의 작성된 모든 상수필드가 저장된 배열로 변환하여 반환하는 메소드
        for (Compass compass : Compass.values()) {
            // Enumerate.ordinal(): 상수필드를 구분하기 위한 첨자를 반환하는 메소드
            System.out.println(compass + " : " + compass.ordinal() + " = " + compass.getValue());
        }
    }
}

- 결과

profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글