티스토리 뷰
안녕하세요
Shiny Ocean 입니다 : )
이번 포스팅에서 다룰 내용은 enum 열거타입 변수입니다.
개요
사용자가 직접 변수에 접근하는 키워드와 변수의 값을 지정한다는 점이 json이나 파이썬 딕셔너리와 비슷해보이긴하지만 개념적으로는 조금 다른것 같습니다. 기본적인 자바프로그래밍을 할때는 사용하지 않던 변수이지만 자바를 이용한 서비스 개발이나 응용프로그램을 제대로 개발할때는 정말 많이 사용되는것 같습니다. 사실 저도 개발 공부를 해온지 2년이 되가지만 이 enum의 존재 자체도 몰랐다가 최근 몇개월전에 존재를 알게 되었습니다.
Enum
Enumeration Type의 약어로 한국어로 열거타입이라 한다, 한정된 값만을 갖는 데이터 타입으로 한정된 값은 열거 상수로 정의 한다. 한정된값(ex 시간, 요일, 월별 말일, 회원 비회원 등)
타입의 선언을 먼저 해주고 사용하는 것인데 몇가지 규칙이 존재합니다.
1. 열거 타입의 이름은 클래스이름 규칙과 동일하게 적용
2. 열거 상수는 관례적으로 대문자로 작성, 결합 이름일경우 _ 로 구분
예제를 통해 다루어보겠습니다. 아래의 예제는 enum으로 한주의 요일들을 상수값으로 정의해주었고 메인에서 이를 이용해 인풋의 값으로 Week 열거타입의 열거상수값을 출력하는 예제 입니다.
import java.util.Scanner;
enum Week{
MON,
TUE,
WED,
THU,
FRI,
SAT,
SUN
}
public class Exam {
/*
* Todo : 인풋을 입력받아 enum의 요일을 정의하고 해당 요일의 값 출력
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int inp = sc.nextInt();
Week today = null;
if(inp == 0) {
today = Week.MON;
}
else if(inp == 1) {
today = Week.TUE;
}
else if(inp == 2) {
today = Week.WED;
}
else if(inp == 3) {
today = Week.THU;
}
else if(inp == 4) {
today = Week.FRI;
}
else if(inp == 5) {
today = Week.SAT;
}
else if(inp == 6) {
today = Week.SUN;
}
System.out.println(today);
}
}
특징
클래스를 상수처럼 사용할수 있다는점이 가장 큰 장점입니다. 만약 클래스의 필드값을 상수로 사용하기 위해서는 public static final과 같이 정의하긴 하지만 상수가 많아질수록 가독성이 떨어지게 됩니다. 하지만 이러한 불편함을 enum이 해결해줄수 있습니다.
'Language > Java - 심화' 카테고리의 다른 글
Java(심화) - 추상클래스 VS 인터페이스 (0) | 2022.01.16 |
---|---|
Java(심화) - 객체 지향 프로그래밍 (0) | 2022.01.04 |
Java(심화) - 스트링 타입과 객체 (0) | 2021.12.30 |
Java(심화) - NULL (2) | 2021.12.30 |
Java(심화) - 참조 타입과 메모리 활용 (0) | 2021.12.30 |