본문으로 바로가기

18.Enum

category HighJava 2020. 9. 18. 14:59

열거형 => 상수값들을 선언하는 방법

  

  static final int A = 0;

  static final int B = 1;

  static final int C = 2;

  static final int D = 3;

  

  enum Data (A, B, C, D);

  

  열거형 데이터를 선언하는 방법

  enum 열거형이름 { 상수값1, 상수값2, ..., 상수값n)

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package kr.or.ddit.basic;
 
public class T08_EnumTest {
    // City 열거형 객체 선언 (기본값을 이용하는 열거형)
    public enum City { 서울, 부산, 대구, 광주, 대전 };
    
    // 데이터 값을 임의로 지정한 열거형 객체 선언
    // 데이터 값을 정해줄 경우에는 생성자를 만들어서 괄호속의 값이 변수에 저장되도록 해야 한다.
    
    public enum Season { 봄("3월부터 5월까지"), 여름("6월부터 8월까지"), 가을("9월부터 11월까지"), 겨울("12월부터 2월까지");
    
        // 괄호속의 값이 저장될 변수 선언
        private String str;
        
        // 생성자 만들기 (열거형의 생성자는 제어자가 묵시적으로 'private'이다.)
        Season(String data){
            str = data;    
        }        
        
        // 값을 반환하는 메서드
        public String getStr() {
            return str;
        }
    }
 
    public static void main(String[] args) {
        
        /**
         *  열거형에서 사용되는 메서드
         *  1. name() => 열거형 상수의 이름을 문자열로 반환한다.
         *  2. ordinal() => 열거형 상수의 정의된 순서값을 반환한다.( 기본적으로 0부터 시작 )
         *  3. valueOf("열거형 상수이름") => 지정된 열거형에서 '열거형상수이름'과 일치하는 열거형 상수를 반환한다.
         *  
         */
        City myCity1; // 열거형 객체변수 선언
        City myCity2;
        
        // 열거형 객체변수에 값 저장하기
        myCity2 = City.서울;
        myCity1 = City.valueOf("서울"); // City enum에서 '서울' 데이터 가져옴.
        
        System.out.println("myCity1 : " + myCity1.name());
        System.out.println("myCity1의 ordinal : " + myCity1.ordinal());
        
        System.out.println("myCity2 : " + myCity2.name());
        System.out.println("myCity2의 ordinal : " + myCity2.ordinal());
        
        
        Season ss = Season.valueOf("여름");
        System.out.println("name =>" + ss.name());
        System.out.println("ordinal =>" + ss.ordinal());
        System.out.println("get메서드 =>" + ss.getStr());
        System.out.println("===========================================");
        
        // 열거형이름.values() => 데이터를 배열로 가져온다.
        Season[] enumArr = Season.values();
        for (int i = 0; i < enumArr.length; i++) {
            System.out.println(enumArr[i].name() + " : " + enumArr[i].getStr());
        }
        System.out.println();
        
        for(City city : City.values()) {
            System.out.println(city + " : " + city.ordinal());
        }
        
        City city = City.대구;
        
        System.out.println(city == City.대전);
        System.out.println(city == City.대구);
        
        System.out.println("대구 => " + city.compareTo(City.대구));
        System.out.println("서울 => " + city.compareTo(City.서울));
        System.out.println("대전 => " + city.compareTo(City.대전));
    }
}
cs


'HighJava' 카테고리의 다른 글

19.행성면적구하기  (0) 2020.09.21
17_Bounded Type Parameter(제한된 타입 파라미터)  (0) 2020.09.17
16_GenericsMethod  (1) 2020.09.17
15_Generics  (0) 2020.09.17
14_Args_가변형 인수  (0) 2020.09.17