티스토리 뷰
Enum은 비슷한 상수들끼리 모아놓은 열거타입 클래스...
정도로만 알고 넘어갔다.
그런데 Enum을 활용해 코드의 가독성과 관리의 효율성을 높이는 것을 보고 (특히 조건문)
큰 흥미가 생겨 부랴부랴 찾아봤다.
특히 배달의 민족 기술블로그에 있는 Enum 활용기를 보고
'와 이렇게도 활용할 수 있구나' 하며 놀랐다.
마치 게임에 대한 이해가 높아서 기본 유닛의 특징을 활용해 새로운 전략으로 농락하는 모습을 본 듯한 느낌(?)
참조 사이트를 보며 직접 if문을 구현해 본 코드는 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class main { public static void main(String[] args) { String data = "Banana"; Fruit fruit = Fruit.valueOf(data); System.out.println("color : " + fruit.value_1 + " / num : " + fruit.value_2); } private enum Fruit{ Apple("red", 1), Mango("yello", 2), Banana("green", 3); private String value_1; private int value_2; Fruit(String value_1, int value_2){ this.value_1 = value_1; this.value_2 = value_2; } } } | cs |
이 때의 가장 큰 장점은 코드의 관리가 쉬워지며, 가독성이 높아진다.
코드가 복잡해지고 길어지면 관리할 때 어려움이 생기게 된다. 못 찾으면 중복코드도 발생하게 되고 비효율적인 것은 자명하다.
Enum에 대한 설명은 나중에 기회가 되면 자세히 공부하며 정리해야겠다.
생활코딩에 enum에 대한 친절한 강의가 올라와 있으며,
이펙티브 자바의 Enum 파트를 정리해 놓은 사이트도 있으니 함께 보면 도움이 되겠다.
(이펙티브 자바는 지금 읽고 있는 책들이 끝나면 한번 봐야겠다. 좋은 내용이 많은 느낌)
Reference
http://pigbrain.github.io/java/2016/03/23/if_enum_on_Java
'JAVA' 카테고리의 다른 글
클래스 Return과 인스턴스 변수 vs 지역 변수 (0) | 2018.10.30 |
---|---|
원시변수와 레퍼런스 ( + 변수 명명 규칙 ) (0) | 2018.10.29 |
JVM - 3 (Execution Engine, 실행 엔진) (0) | 2018.10.25 |
JVM - 2 (Runtime Data Area, 런타임 데이터 영역) (0) | 2018.10.24 |
JVM - 1 (Class Loader, 클래스 로더) (0) | 2018.10.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 124 나라의 숫자
- K번째수
- 최솟값
- 문자열 내 마음대로 정렬하기
- 안드로이드 스튜디오
- 프로그래머스
- json
- AWS
- 노션트렐로광고X
- 알고리즘
- 텔레그램
- cgv
- 파이팅코리아
- 완주하지 못한 선수
- java
- codility
- 스프링 부트
- 예매 알림
- 카카오인턴
- 자바
- 맵 api
- 타겟 넘버
- 쇠막대기
- FrogJmp
- 객체지향과 디자인패턴
- API
- 더 나은 내일
- 다음 맵 api
- 기능개발
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함