목차
enum 정의
enum / class 비교 (유사점/차이점)
enum 예제1 - Class 안의 enum
enum 예제2 - Switch 구문 안의 enum
enum 예제3 - enum 이용한 반복문
enum 정의
상수를 모아놓은 열거형 "클래스".
※ 변경 불가 값 (예: 날짜, 색깔 등)을 모아서 관리할 때 유용.
[특징]
1. enum : enumerations (= 구체적으로 나열) 의미.
2. final 키워드로 설정하는 상수처럼 변경 불가 .
3. Class와 유사점・차이점 있음. (아래에서 설명.)
4. 각 상수에 대해서 개별 속성값 지정도 가능 .
5. 다른 Class 안에서 사용 가능. (예제1)
6. Switch 구문 안에서도 사용 가능. (예제2)
6. 반복문에서도 사용 가능. (예제3)
[예제] Hz.java
enum Code {
HTTML,
CSS,
JS
}
public class Hz {
public static void main(String[] args) {
Code hzCode = Code.CSS;
System.out.println(hzCode);
}
}
결과값: CSS
enum / class 비교 (유사점/차이점)
[Class와 유사점]
(속성・메서드・생성자) 보유 가능.
[Class와 차이점]
1.
enum 상수들은 public , static , final 성격을 띔.
즉, 변경 불가. = 덮어쓰기 불가. = 재정의 불가.
2.
enum은 객체 생성 불가.
3.
다른 class (클래스)를 extends (상속) 불가.
단, interface (인터페이스)는 implements (시행) 가능.
enum 예제1 - Class 안의 enum
enum은 다른 클래스 안에서도 사용 가능.
[예제] Hz.java
public class Hz {
enum Code {
HTML,
CSS,
JS
}
public static void main(String[] args) {
Code hzCode = Code.CSS;
System.out.println(hzCode);
}
}
결과값: CSS
enum 예제2 - Switch 구문 안의 enum
enum은 switch 구문 안에서도 사용 가능.
※ 상응하는 값을 찾기 위해 자주 사용됨.
[예제]
enum Code {
HTML,
CSS,
JS
}
public class Hz {
public static void main(String[] args) {
Code hzCode = Code.CSS;
switch(hzCode) {
case HTML:
System.out.println("HTML : 뼈대");
break;
case CSS:
System.out.println("CSS : 디자인");
break;
case JS:
System.out.println("JS : 기능");
break;
}
}
}
결과값:
CSS : 디자인
enum 예제3 - enum 이용한 반복문
enum .values() 메서드 갖음.
values() 메서드는 enum 안 상수를 배열로 반환.
※ 반복문 돌릴 수 아주 유용.
[구문]
for( enum val : enum .values()) {
val 출력.
}
PS.
※ enum : enum 이름.
※ val : 변수 이름. (※ enum 안의 각 상수를 담는 변수)
[예제] Hz.java
enum Code {
HTML,
CSS,
JS
}
public class Hz {
public static void main(String[] args) {
for (Code hzCode : Code.values()) {
System.out.println(hzCode);
}
}
}
결과값:
HTML
CSS
JS
주소 복사
랜덤 이동