개발

7. Enum 형식 본문

Backend/Java

7. Enum 형식

Study 2021. 7. 13. 21:45

 

안녕하세요 

Enum에 관해 다 짚고 넘어가자면 끝이 없기때문에 오늘은 간단하게 짚고 넘어가도록 하겠습니다.

자바는 JDK 1.5 버전부터 enum형식을 지원했습니다.

 

아래의 예제는 가장 간단한 구조의 enum 예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
enum Heros{
    효주,신혁,미진,요한,Mybatis;
}
public class EmunTest {
    public static void main(String[] args) {
        System.out.println(Heros.효주);
        System.out.println(Heros.신혁);
        System.out.println(Heros.미진);
        System.out.println(Heros.요한);
        System.out.println(Heros.Mybatis);
    }
}
cs

 

결과가 잘 나오는 것을 확인 할 수있습니다.

 

 

values() 메서드를 이용하여 조금더 쉽게 사용 할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
enum Heros{
    효주,신혁,미진,요한,Mybatis;
}
public class EmunTest {
    public static void main(String[] args) {
        for (Heros hero : Heros.values()){
            System.out.println(hero);
        }
    }
}
cs

 

 

 

 

일반적으로 많이 사용하는 스위치 문입니다 if~else문으로도 많이 사용합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
enum Heros{
    효주,신혁,미진,요한,Mybatis;
}
public class EmunTest {
    public static void main(String[] args) {
        Heros hero=Heros.효주;
        switch (hero) {
            case 효주:
                System.out.printf("오늘의 영웅은!! %s!!!!", Heros.효주);
                break;
            case 신혁:
                System.out.printf("오늘의 영웅은!! %s!!!!", Heros.신혁);
                break;
            case 미진:
                System.out.printf("오늘의 영웅은!! %s!!!!", Heros.미진);
                break;
            case 요한:
                System.out.printf("오늘의 영웅은!! %s!!!!", Heros.요한);
        }
    }
}
cs

 

enum의 각 열거형에 속성을 지정할 수도 있습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
enum Heros{
    효주("300","2"),신혁("500","150"),미진("9978542210","21"),요한("900","30");
    private String power;
    private String speed;
 
    public String getPower() {
        return power;
    }
 
    public String getSpeed() {
        return speed;
    }
 
    private Heros(){}
    private Heros(String power,String speed){
        this.power=power;
        this.speed=speed;
    }
 
}
public class EmunTest {
    public static void main(String[] args) {
        System.out.println(Heros.요한.getPower());
        System.out.println(Heros.요한.getSpeed());
 
    }
}
cs

 

 

상기 예제에서 생성자를 private로 추가한 부분이 보일텐데, enum이 특수한 정적 클래스이기 떄문입니다.

그렇기떄문에 new로 생성할 수 없고 접근제한자를 private로 줘야합니다. 

 

매서드들에 관해서도 다뤄야하지만 양이 너무 많아지기 때문에 추후 2부로 다시 찾아뵙겠습니다.

'Backend > Java' 카테고리의 다른 글

9. 흐름 제어 선택문  (0) 2021.07.17
8. 연산자(Operator)  (0) 2021.07.17
6. byte, short, int, long 자료형 (정수 자료형)  (0) 2021.07.13
5. float, double, Bigdecimal 자료형 (실수 자료형)  (0) 2021.07.11
4. String 자료형  (0) 2021.07.11