생활코딩 강의를 듣고 적는 글입니다.
자바의 데이터 타입 중 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' 카테고리의 다른 글
자바/JAVA 스트림과 입출력 (0) | 2021.02.09 |
---|---|
자바/JAVA Collection Framework (0) | 2021.02.05 |
자바/JAVA 자신을 호출(생성)하는 객체 (2) | 2021.01.29 |
자바/JAVA 클래스 패스(Class Path) (0) | 2021.01.27 |
자바/JAVA 제네릭 (0) | 2021.01.26 |