본문 바로가기

study/java

자바/JAVA enum 열거

생활코딩 강의를 듣고 적는 글입니다.

 

 

자바의 데이터 타입 중 enum, 열거란 것이 있다. enum은 상수들의 집합이다. 그리고 사실상 클래스이다. 다음과 같이 선언한다.

enum Fruit{
	APPLE, PEACH, BANANA
}

위 코드는 다음 코드와 동일하다.

class Fruit{
	public static final Fruit APPLE = new Fruit();
	public static final Fruit PEACH = new Fruit();
	public static final Fruit BANANA = new Fruit();
}

열거 타입을 통해 코드를 단순하게 해주고 관련있는 상수끼리 묶을 수도 있다. 또한 enum이라는 키워드를 통해 열거임을 확실하게 해준다.

 

enum은 클래스여서 확장자도 클래스이다. 당연히 필드, 메소드, 생성자를 다 가질 수 있다.

 

여기서 주의할 것은 생성자는 public 타입은 될 수 없다. 또한 생성자를 호출할 때 매개변수도 전달할 수 있다.

 

enum Fruit{
	APPLE("red"), PEACH("pink"), BANANA("yellow");
    
    public String color;
    Fruit(String color){
        System.out.println("Call Constructor "+this);
        this.color = color;
    }
}

이렇게 new 키워드를 통해 객체를 생성하는 것 처럼, 상수 옆에 괄호를 붙이고 괄호 안에 데이터를 넣어 생성자에 전달할 수 있다.

 

또 values() 메소드를 사용해 배열 형태로 얻어낼 수 있다.

'study > java' 카테고리의 다른 글