JAVA

[JAVA] Enum(열거 타입)

EJUN 2023. 5. 17. 15:05

Enum
Enum클래스는 열거 타입클래스라고도 하며 주로 계절이나 달 처럼 정해진, 변하지 않는 값들을 하나로 묶어서
사용하고 싶을 때 사용하는 클래스


Enum타입의 데이터를 선언하기 위해서는 'enum'키워드를 이용하여야 한다.

enum키워드 사용
enum 사용 예시

위의 코드처럼 enum도 하나의 클래스이기 때문에 객체를 생성해주고 enum타입중에 원하는 타입을 선택하여 객체.열거타입으로 호출하게 되면 해당 타입의 값이 출력되게 된다.

name()메소드

enum클래스 안에는 많은 메소드가 있는데 enum타입의 이름을 출력해주는 name()메소드가 있다.

name()메소드 사용 예시

enum클래스인 Week의 값만큼 반복을 돌리면서 name()메소드를 사용하여 값을 출력하면 아래와 같이 Week클래스안에 있는 값들이 출력되게 된다.

실행결과

ordinal()메소드

ordinal()메소드 전체 enum중 현재 값이 몇번째에 있는지 알려주는 메소드이다.

ordinal()메소드 사용 예시

values()메소드

values()메소드 사용 예시

values()메소드는 해당 열거체의 즉 Week의 enum클래스의 모든 상수를 배열을 이용하여 모두 반환을 해준다. 

실행결과

 

enum의 생성자

enum도 생성자이기 때문에 enum객체를 생성할 때 생성자도 같이 생성된다.

물론 개발자가 직접 생성하지 않아도 default 생성자가 생성된다.

하지만 enum클래스의 scope는 public이 아닌 private로 해야지정해주어야 한다.

지정접근자 public으로 선언시 오류
private로 생성자 생성

private로 지정해주어야하는 이유는 enum클래스는 상수형식으로 이미 값을 지정해놓았기 때문에 다른 클래스에서 변경을 할 수 없게끔 보호하기 위하여 안정성을 위하여 접근지정자를 private로 지정해주어야한다.

'JAVA' 카테고리의 다른 글

[JAVA] I/O스트림  (0) 2023.05.23
[JAVA] 제네릭 < >  (0) 2023.05.23
[JAVA] Thread & Runnable & Multi Thread란?  (0) 2023.05.03
[JAVA] 패키지&import & 접근 제어 지시자  (0) 2023.04.26
[JAVA] Object클래스  (0) 2023.04.25