ddㅇJava Enum이란?
JDK1.5 부터 관련이 있는 상수들의 집합을 사용할때 enum을 사용한다.
enum은 인터페이스가 아니고 완전한 클래스이다.
enum의 장점
- 코드가 간결하고 가독성이 좋다.
- 인스턴스의 생성과 상속을 방지한다.
- 키워드에 구현의도가 나열되어있다. (enumeration)
d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | enum Type { WALKING, RUNNING, TRACKING, HIKING } /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { // your code goes here for(Type type : Type.values()) { System.out.println(type); } } } | cs |
enum Type은 아래와 같은 코드와 같다.
1 2 3 4 5 6 7 8 9 10 11 | enum Type { WALKING, RUNNING, TRACKING, HIKING } class Type { public static final Type WALKING = new Type(); public static final Type WALKING = new Type(); public static final Type WALKING = new Type(); private Type() { } } | cs |
생성자의 접근제어가 private 이고 클래스를 다른용도로 사용하는것을 금지한다.
출력결과
WALKING
RUNNING
TRACKING
HIKING
enum과 생성자활용
12345678910111213141516 public enum BoardType {notice("공지사항"),free("자유게시판");BoardType(String value) {this.value = value;}private String value;public String getValue() {return this.value;}}cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | enum Fruit{ APPLE("red"), PEACH("pink"), BANANA("yellow"); private String color; Fruit(String color){ System.out.println("Call Constructor "+this); this.color = color; } String getColor(){ return this.color; } } enum Company{ GOOGLE, APPLE, ORACLE; } public class ConstantDemo { public static void main(String[] args) { for(Fruit f : Fruit.values()){ System.out.println(f+", "+f.getColor()); } } } | cs |
참고링크
https://opentutorials.org/module/516/6091
http://www.nextree.co.kr/p11686/
https://sjh836.tistory.com/134
봐두면 좋은 링크
'개발이야기' 카테고리의 다른 글
Spring Jpa LocalDateTime MySql에서 사용하기 (0) | 2019.04.12 |
---|---|
java8 람다식이란? (0) | 2019.04.11 |
Mac Mysql 설치 및 설정하기 (0) | 2019.03.20 |
git ignore 설정하기 (0) | 2019.03.19 |
2019년 반드시 알아둬야하는 웹 개발 트렌드 5가지는? (0) | 2019.02.04 |