enum 타입
한정된 상수로 구성되는 데이터 타입
클래스와 유사한 형태로 구성(정의)
별도의 값을 지정하지 않고 상수 자체를 그대로 사용
< 기본 정의 문법 >
enum enum타입명 {
상수명1, 상수명2, ... 상수 명n;
< 기본 사용 문법 >
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
enum Grade { // enum 타입 정의 => enum 타입명을 Grade 로 지정(클래스와 선언부 거의 동일)
SALES, // Ordinal =0
PART_TIME_JOB, // Ordinal =1
NOMAL // Ordinal =2
자동으로 순서번호 (Ordinal) 가 기록되며 0부터 부여됨
compareTo() 로 Ordinal 비교
}
// enum 타입 변수를 선언하여 상수값 할당 가능
Grade grade = Grade.SALES;
System.out.println(grade instanceof Enum); // enum 타입은 Enum 클래스를 상속받음
System.out.println(grade instanceof Object); // enum 타입은 Object 클래스를 상속받음
if (grade == Grade.NOMAL) {
System.out.println("일반 근로자");
} else if(grade == Grade.PART_TIME_JOB) {
System.out.println("시간제 근로자");
} else if (grade == Grade.SALES) {
System.out.println("영업직 근로자");
}
// Grade 타입이 아닌 다른 enum 타입과의 비교 자체가 불가능하다
// switch ~ case 문에 enum 타입 ㅏ용 가능
// switch 조건식에 사용 가능한 타입 : int타입 이하의 정수, 문자열, enum
switch(grade) {
case NOMAL :
System.out.println("일반 근로자!!!");
break;
case SALES :
System.out.println("영업직 근로자!!!");
break;
case PART_TIME_JOB :
System.out.println("시간제 근로자!!!");
default :
System.out.println("근로자아님!!");
}
// compareTo() 메서드 : ordinal 차이값을 리턴
System.out.println(grade.compareTo(Grade.NOMAL)); == -2
|
cs |
'Language > Java' 카테고리의 다른 글
Stack(스택) vs Queue(큐) (0) | 2020.06.25 |
---|---|
Map 인터페이스 - Collection 프레임워크 (0) | 2020.06.25 |
BigInteger & BigDecimal (0) | 2020.06.24 |
Random 클래스 (0) | 2020.06.24 |
Math 클래스 (0) | 2020.06.23 |