Java/Java

Java_ 열거형(Enum)

검은고양이개발자 2023. 1. 10. 16:28
반응형

 

열거형(enum)여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 자바의 문법요소이며

서로 연관된 상수들의 집합을 의미합니다.

 

enum Animals { DOG, CAT, TIGER, MONKEY }

 

public static final   vs   enum


 

enum을 사용하면 final 문제들을 모두 효과적으로 해결할 수 있을 뿐 아니라 코드를 단순하고 가독성이 좋게 만들 수 있다는 장점이 있고 enum으로 정의한 상수는 switch문에서도 사용이 가능합니다.

 

final 이 switch 문에 사용이 불가능한 이유는 사용자 정의 타입을 활용해야 하는데

switch문의 조건은 char, byte, short, int, Character, Byte, Short, Integer, String, enum 타입만 가능하기 때문입니다.

 

enum Animals { DOG, CAT, TIGER, MONKEY }

public class Main {
    public static void main(String[] args) {
        Animals animals = Animals.Cat;
        switch (animals) {
            case DOG:
                System.out.println("개");
                break;
            case CAT:
                System.out.println("고양이");
                break;
            case TIGER:
                System.out.println("호랑이");
                break;
            case MONKEY:
                System.out.println("원숭이");
                break;
        }
    }
}
//출력
고양이

 

 

리턴 타입메소드(매개변수)설명


 

String name() 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을
정의할 때 사용한 상수 이름과 동일하다.
int ordinal() 열거 객체의 순번(0부터 시작)을 리턴한다.
int compareTo(비교값) 매개값과 비교해서 순번 차이를 리턴한다.
열거 타입 valueOf(String name) 문자열의 열거 객체를 리턴한다.
열거 배열 values() 모든 열거 객체들을 배열로 리턴한다.

 

 

enum Animals {
        MONKEY,
        DOG,
        CAT
    }

    public class CordJg{
        public static void main(String[] args) {
            Animals animals = Animals.CAT;

            Animals[] setAnimals = Animals.values();
            for(Animals a : setAnimals)
            {
                System.out.printf("%s = %d %n", a.name(), a.ordinal());
            }

            Animals dogNum1 = Animals.DOG;
            Animals dogNum = Animals.valueOf("DOG");
            System.out.println(dogNum1);
            System.out.println(dogNum);
            System.out.println(Animals.MONKEY == Animals.valueOf("MONKEY"));

            System.out.println(dogNum.compareTo(Animals.CAT));

            switch(animals) {
                case MONKEY:
                    System.out.println("원숭이");
                    break;
                case DOG:
                    System.out.println("개");
                    break;
                case CAT:
                    System.out.println("고양이");
                    break;


            }
        }
    }
//출력
MONKEY = 0 
DOG = 1 
CAT = 2 
DOG
DOG
true
-1
고양이

 

위의 코드는 리턴 타입 메서드들을 사용해본 코드이다.

메서드들마다 어떻게 상요되는지 살펴보고 출력이 각각 어떻게 나오는지 확인하자!

반응형