JAVA/포스팅

자바 열거형

짜집퍼박사(짜박) 2023. 11. 19. 00:57

자바에서는 열거형(Enum)을 사용하여 일련의 상수를 나타낼 수 있습니다. 열거형은 관련된 상수들을 그룹화하고 타입 안전성을 제공하여 코드의 가독성과 유지보수성을 높이는 데 도움을 줍니다. 다음은 자바 열거형에 대한 자세한 내용입니다.

 

1. 열거형 선언

자바에서 열거형은 enum 키워드를 사용하여 선언됩니다. 예를 들어, 간단한 컬러 열거형을 만들어 보겠습니다.

public enum Color {
    RED, GREEN, BLUE;
}

위의 코드에서 Color는 열거형의 이름이며, RED, GREEN, BLUE는 열거형 상수입니다. 각 상수는 열거형 내에서 유일하게 식별됩니다.

 

2. 열거형 상수와 메서드

열거형은 일반적인 클래스처럼 상수 외에도 필드, 메서드, 생성자 등을 가질 수 있습니다. 예를 들어, 열거형에 각 상수에 대한 RGB 값을 반환하는 메서드를 추가할 수 있습니다.

public enum Color {
    RED(255, 0, 0),
    GREEN(0, 255, 0),
    BLUE(0, 0, 255);

    private int red;
    private int green;
    private int blue;

    Color(int red, int green, int blue) {
        this.red = red;
        this.green = green;
        this.blue = blue;
    }

    public int getRed() {
        return red;
    }

    public int getGreen() {
        return green;
    }

    public int getBlue() {
        return blue;
    }
}

 

3. 열거형의 사용

열거형은 switch 문에서도 사용할 수 있어서 코드를 더 간결하게 만들어줍니다.

Color color = Color.RED;

switch (color) {
    case RED:
        System.out.println("The color is red.");
        break;
    case GREEN:
        System.out.println("The color is green.");
        break;
    case BLUE:
        System.out.println("The color is blue.");
        break;
}

 

4. 열거형의 메서드 사용

열거형의 메서드를 호출하여 추가적인 정보를 얻을 수 있습니다.

Color color = Color.RED;

System.out.println("RGB values: " +
        color.getRed() + ", " +
        color.getGreen() + ", " +
        color.getBlue());

 

5. 열거형의 반복

모든 열거형 상수를 반복하려면 values() 메서드를 사용할 수 있습니다.

for (Color color : Color.values()) {
    System.out.println(color.name() + ": " +
            color.getRed() + ", " +
            color.getGreen() + ", " +
            color.getBlue());
}

이렇게 하면 열거형에 정의된 모든 상수를 순회하면서 작업을 수행할 수 있습니다.

열거형은 코드를 더 명확하게 만들고 실수를 방지하며, 타입 안전성을 유지하는 데 도움이 됩니다. 열거형은 주로 고정된 상수 집합을 표현하거나 특정 유형의 값으로 제한된 경우에 유용하게 사용됩니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 열거형에 멤버 추가하기  (0) 2023.11.20
자바 열거형의 정의와 사용  (0) 2023.11.20
자바 제네릭 타입의 제거  (0) 2023.11.19
자바 제네릭 타입의 형변환  (0) 2023.11.19
자바 제네릭 메서드  (0) 2023.11.19