** 자기 공부용 및 암기용으로 포스팅하는 글 입니다.
** 정확한 정보는 보장 할 수 없으니, 참고용으로만 봐주시면 감사하겠습니다.
** 제 개인적인 생각 및 자기 암시목적으로 작성되기에 이점 양해 부탁드립니다.
들어가기에 앞서..
해당 내용은 JDK 1.5 이상에서만 지원한다.
열거형이랑 서로 연관된 상수(final)의 집합을 의미한다.
이를 좀 더 깔끔하게 정리를 하여 코딩하기 위한 방식을 서술하겠다.
★ 알아볼 내용
1. enum을 사용하는 이유.
2. enum 사용 예시
1. enum을 사용하는 이유.
enum이 있기전 우리는 public static final 을 통해서 전역변수에 상수를 정의하여 설정하였었다.
그러나 서로 연관을 가지고 있는 전역변수들을 일일히 선언하는 것은 소스의 가독성을 떨어뜨리는 일이며, 변수명이 서로 달라야 하는 단점도 가지고 있다. 이를 해결하기 위한 방법으로 우리는 enum을 사용한다.
2. enum 사용 예시
//enum Level 선언. 내용물들의 변수 명은 관례적으로 대문자 작성
enum Level {
LOW, // 0
MEDIUM, // 1
HIGH // 2
}
public class EnumTest {
public static void main(String[] args) {
Level level = Level.MEDIUM;
//allLevels 배열에 enum Level의 값을 모두 담겠다.
Level[] allLevels = Level.values();
//순차적으로 돌며 해당 값의 명칭과 idx값을 추출하겠다.
for(Level x : allLevels) {
System.out.printf("%s=%d%n", x.name(), x.ordinal());
}
// findLevel 변수안에 Level의 enum에서 'LOW'값으로 초기화 하겠다.
Level findLevel = Level.valueOf("LOW");
System.out.println(findLevel);
System.out.println(Level.LOW == Level.valueOf("LOW"));
switch(level) {
case LOW:
System.out.println("낮은 레벨");
break;
case MEDIUM:
System.out.println("중간 레벨");
break;
case HIGH:
System.out.println("높은 레벨");
break;
}
}
}
//출력값
LOW=0
MEDIUM=1
HIGH=2
LOW
true
중간 레벨
values()
-. 컴파일러가 자동저긍로 모든 열거형에 추가해 주는 메서드
name()
-. enum에 들어가 있는 변수들의 각각 이름 반환
ordinal()
-. enum에 들어가 있는 변수들의 idx 반환.
idx는 따로 할당하지 않더라도 첫번째 부터 0으로 시작하며 자동할당됨.
valueOf()
-. 지정된 열거형에서 이름과 일치하는 열거형 상수를 반환.
'JAVA 지식 및 공부' 카테고리의 다른 글
[JAVA] 객체지향 프로그래밍 : 상속 (1) | 2024.06.07 |
---|---|
[JAVA] StringTokenizer & StringBuilder & StringBuffer (0) | 2024.06.06 |
[JAVA] Collection - List 개념 & 메서드 정리 (0) | 2024.05.06 |
[JAVA] Integer 클래스의 메소드 정리 (0) | 2024.04.15 |
[JAVA] 원시 타입(Primitive Type) vs 참조 타입(Refernce Type) (1) | 2024.04.12 |