반응형
특수한 형태의 클래스인 열거형에 대해 알아보자.
열거형 (Enum) : 상수들의 묶음으로 아래와 같은 예시들을 열거형으로 만들 수 있다.
- 1월~12월 달력을 볼 때 고정된 값 : JAN, FEB, MAR ...
- 옷사이즈 : S, M, L, XL
- OS 종류 : WIN10, WIN11, MACOS, LINUX ...
- 해상도 : HD, FHD, QHD, UHD
enum Resolution {
HD, FHD, UHD
}
enum 열거형이름 { 열거형의 값 나열 }
Resolution이라는 열거형은 HD,FHD,UHD라는 세개의 값을 가진다.
- 보통 열거형의 값들은 대문자로 정의한다.
열거형 데이터의 값을 가져올때에는 열거형이름.값 의 형태로 가져온다. (Resolution.HD)
아래와 같이 switch 문을 통하여 열거형 값에 따라 다른 결과를 출력하도록 설정할 수도 있다.
혹은 아래와 같이 문자열 값을 전달받아 열거형데이터 값을 지정하는 방법도 있다.
resolution = Resolution.valueOf("UHD");
System.out.println(resolution);
해당 열거형 데이터가 가지고있는 전체 데이터와 인덱스를 출력해보았다.
for문을 통하여 열거형 Resolution.values() 값이 있는만큼 반복하여 열거형 데이터의 이름과 순번을 출력하였다.
- myRes.name() + myRes.ordinal();
이번에는 열거형의 상수가 내포하고 있는 값이 필요한 경우에 대해 학습해보자. (Ex. JAN : 1 )
각 해상도의 사이즈가 지정되어있다고 가정해보자. (Ex. HD -> 1280 width)
enum Resolution {
HD(1280), FHD(1920), UHD(3840);
private final int width;
Resolution(int width){
this.width = width;
}
public int getWidth(){
return width;
}
}
열거형 Resolution에서 int width 값을 추가하고 Getter getWidth()를 통해 값을 받아오도록 하였다.
- HD width : 1280, FHD width :1920, UHD width : 3840
myRes.getWidth() 메소드를 호출하면 아래와 같이 값이 출력된다.
반응형
'Spec UP - Backend > 나도코딩의 자바기본편' 카테고리의 다른 글
Chap_08. 추상 클래스(AbstractClass) (0) | 2023.05.10 |
---|---|
Quiz. 클래스를 이용하여 햄버거를 자동으로 만드는 프로그램을 작성하시오 (0) | 2023.05.03 |
Chap_07. Final (0) | 2023.05.02 |
Chap_07. Reference 참조 (0) | 2023.05.02 |
Chap_07. Super (0) | 2023.04.28 |
댓글