ㅤㅤㅤ
enum 클래스의 사용과 이해 열거형 (JDK 1.5 ↑) 본문
enum : 열거형 (JDK 1.5 ↑)
- 클래스처럼 보이게 하는 상수
- 서로 관련 있는 상수들을 모아 심볼릭한 명칭의 집합으로 정의한 것
- Enum 클래스형을 기반으로 한 클래스형 선언
- 새로운 열거형을 선언하면, 내부적으로 Enum 클래스형 기반의 새로우누 클래스형이 만들어짐.
1. 열거형 선언하기
1) 하나의 java파일로 만들어서 선언하기
1 2 3 4 | <Type.java> public enum Type { WALKING, RUNNING, TRACKING, HIKING } |
1 2 3 4 5 6 | <Shoes.java> public class Shoes { public String name; public int size; public Type type; } |
2) 클래스 안에서 선언하기
1 2 3 4 5 6 7 8 | <Shoes.java> public class Shoes { public String name; public int size; public enum Type { WALKING, RUNNING, TRACKING, HIKING } } |
3) 클래스 밖에서 선언하기
1 2 3 4 5 6 7 8 9 | <Shoes.java> enum Type { WALKING, RUNNING, TRACKING, HIKING } public class Shoes { public String name; public int size; public Type type ; } |
열거된 순서에 따라 0 부터 순서값을 가짐. 차례대로 증가함.
enum 열거형으로 지정된 상수는 대문자 사용.
마지막 끝에 세미콜론(;)을 붙이지 않음.
enum 열거형으로 지정된 상수는 대문자 사용.
마지막 끝에 세미콜론(;)을 붙이지 않음.
2. 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <Shoes.java> enum Type { WALKING, RUNNING, TRACKING, HIKING } public class Shoes { public String name; public int size; public Type type; public static void main(String[] qrgs) { Shoes shoes = new Shoes(); shoes.name = "나이키" ; shoes.size = 230 ; shoes.type = Type.RUNNING; System.out.plintln( "신발 이름 = " + shoes.name); System.out.plintln( "신발 사이즈 = " + shoes.size); System.out.plintln( "신발 종류 = " + shoes.type); } } |
# 결과
신발 이름 = 나이키
신발 사이즈 = 230
신발 종류 = RUNNING
신발 이름 = 나이키
신발 사이즈 = 230
신발 종류 = RUNNING
3. 메소드
1) values() : 열거된 모든 원소를 배열에 담아 순서대로 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | enum Type { WALKING, RUNNING, TRACKING, HIKING } public class Shoes { public String name; public int size; public Type type; public static void main(String[] args) { for (Type type : Type.values()) { System.out.println(type); } } } |
# 결과
WALKING
UNNING
TRACKING
HIKING
WALKING
UNNING
TRACKING
HIKING
2) ordinal() : 원소에 열거된 순서를 정수 값으로 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | enum Type { WALKING, RUNNING, TRACKING, HIKING } public class Shoes { public String name; public int size; public Type type; public static void main(String[] args) { Shoes shoes = new Shoes(); shoes.name = "나이키" ; shoes.size = 230 ; shoes.type = Type.RUNNING; System.out.println(shoes.type.ordinal()); Type tp = Type.HIKING; System.out.println(tp.ordinal()); } } |
# 결과
1
3
1
3
3) valueOf() : 매개변수로 주어진 String과 열거형에서 일치하는 이름을 갖는 원소를 반환
(주어진 String과 일치하는 원소가 없는 경우 IllegalArgumentException 예외 발생)
1 2 3 4 5 6 7 8 9 10 11 12 13 | enum Type { WALKING, RUNNING, TRACKING, HIKING } public class Shoes { public static void main(String[] args) { Type tp1 = Type.WALKING; Type tp2 = Type.valueOf( "WALKING" ); System.out.println(tp1); System.out.println(tp2); } } |
# 결과
WALKING
WALKING
WALKING
WALKING
<값 가져오는 방법>
* enum 형 객체를 만들어서 값 가져오기
ex) Type.WALKING
* valueOf() 메소드를 이용해서 가져오기
ex) Type.valueOf("WALKING");
* enum 형 객체를 만들어서 값 가져오기
ex) Type.WALKING
* valueOf() 메소드를 이용해서 가져오기
ex) Type.valueOf("WALKING");
4. 열거형 상수를 다른 값과 연결하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | enum Type { // 상수("연결할 문자") WALKING( "워킹화" ), RUNNING( "러닝화" ) , TRACKING( "트래킹화" ), HIKING( "등산화" ) final private String name; private Type(Stirng name) { //enum에서 생성자 같은 역할 this .name = name; } public String getName() { // 문자를 받아오는 함수 return name; } } public class Shoes { public static void main(String[] args) { for (Type type : Type.values()){ System.out.println(type.getName()); } } } |
# 결과
워킹화
러닝화
트래킹화
등산화
워킹화
러닝화
트래킹화
등산화
5. 클래스의 static final 이용해서 열거형 선언하기
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Type { static final String WALKING = "워킹화" ; static final String RUNNING = "러닝화" ; static final String TRACKING = "트래킹화" ; static final String HIKING = "등산화" ; } public class Shoes { public static void main(String[] args) { String w = Type.WALKING; System.out.println(w); } } |
# 결과
워킹화
워킹화
'プログラミング > JAVA' 카테고리의 다른 글
jsoup : 자바 HTML 파서(Java HTML Parser) (0) | 2017.06.19 |
---|---|
Naming Role (0) | 2017.06.16 |
문자열을 위한 switch (0) | 2017.06.15 |
Scanner nextInt 뒤에 nextLine 쓸 때 생기는 오류 해결법 (0) | 2017.06.13 |
CSV파일을 UTF-8으로 저장 (0) | 2017.06.13 |
Comments