프로그래밍 언어/Java

enum이란? - 확장 (JAVA)

제이온 (Jayon) 2020. 12. 18.

안녕하세요? 코딩중독입니다.

 

저번 시간에는 enum의 기본에 대해 알아 보았습니다. 이전 글까지는 이제 열거형 상수가 문자열에 대한 정보만 담고 있었습니다. 이번에는 좀 더 많은 데이터를 담는 방법을 설명하겠습니다.

 

 

열거형 상수를 다른 값과 연결하기

제가 레스토랑에 왔다고 해 봅시다. 여기에는 메뉴를 보니 피자, 스테이크, 파스타, 샐러드가 있었고, 각각 가격이 2000원, 3000원, 1500원, 1000원이었습니다. 아주 싸죠?

 

저는 열거형 상수에 음식의 이름을 담는 동시에 가격의 정보도 같이 담으려고 합니다. 이때, 어떻게 소스코드를 작성해야할까요? 아래 소스코드를 보면서 알아 봅시다.

 

 

 

 

맨 윗줄을 제외하면, 형태가 어디서 많이 본 것 같지 않나요? 그렇습니다. 생성자의 접근 제한자가 private인 것을 제외하면, 기본적인 클래스 구현 코드와 같죠.

 

그리고 이렇게 생성자의 접근 제한자를 private으로 지정하여 인스턴스를 단 1개만 생성하도록 만드는 방식을 싱글톤 패턴이라고 부릅니다. 이번 시간에 굳이 이것을 알 필요는 없고, 궁금하신 분은 따로 구글링해 보시면 되겠습니다.

 

이제, 맨 윗줄인 열거형 상수를 봅시다. 열거형 상수는 열거 객체로 생성된다고 하였는데, 각각 멤버변수인 pirce를 가지고 있습니다. 그리고 'Food.PIZZA.getPrice();' 구문을 실행함으로써 피자의 가격을 알 수 있게 됩니다.

 

 

 

 

람다와 stream api를 사용한 것인데, 단순히 열거 상수의 데이터를 출력한 것입니다. 출력 결과는 아래와 같습니다.

 

 

 

 

정리

열거형 클래스도 클래스는 클래스입니다. 그래서 멤버 변수도 추가할 수 있고, 각종 사용자 정의 함수도 추가할 수 있습니다. 이 점을 꼭 기억하면서 개발을 하시면 많은 도움이 될 것입니다.

 

enum 이야기는 여기까지 하고, 글은 이만 줄이겠습니다.

댓글

추천 글