[Java 개발] 제25회 enum

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의 254cm입니다.

이번 시간에는 enum에 대해서 설명해 보도록 하겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는 【Java 개발】제24회 Collection Framework에 대해서 배워 봤습니다.

enum이란?

enum은 Java 5부터 추가된 것이며 정수 집합을 의미합니다.

final static 키워드를 이용해도 정수를 정의할 수 있는데,

enum은 작성 방법이 매우 간단해서 가독성이 높습니다.

그리고 enum도 클래스의 하나이기 때문에 정수 데이터형을 정의할 수 있습니다.

즉, 의도한 정수값만 대입할 수 있는 변수를 생성할 수 있습니다.

 

enum 쓰는 법

〇enum 클래스 정의

위와 같이 enum클래스에서 정의되는 정수는 접근제어자도 데이터형도 필요하지 않습니다.

다만, 정수 이름만 정의하면 됩니다.

위와 같이 정의된 정수는 이름과 같은 문자열과 같이 사용할 수 있습니다.

 

샘플

위와 같이 별도의 .java 파일로 enum을 정의할 수 있습니다.

정수명은 unicode 문자를 사용할 수 있지만 명명규약에 따라 영문 대문자로 작성할 것을 권장합니다.

 

샘플 2

위와 같이 다른 클래스와 같은 파일로 작성할 수도 있습니다.

정수 사용은 위와 같이 enum클래스의 객체를 생성하여 사용합니다.

 

출력 결과

 

샘플 3

위와 같이 클래스의 필드로 작성 할 수도 있습니다.

 

〇enum 정수에 값을 부여

enum 상수 값을 정의하기 위해 괄호를 추가하고 그 안에 값을 만들면 좋습니다.

 

그러나 정수에 값을 저장할 필드와 컨스트럭터 및 해당 필드 변수의 get 메서드를 작성해야 합니다.

 

샘플

 

위와 같이 정수 값을 저장할 필드와 컨스트럭터, get메서드를 생성해야 합니다.

출력 결과

 

Enum 클래스의 주요메서드

모든 enum은 “java.lang.Enum”클래스를 상속하고 있습니다.

그래서, enum은 Enum 클래스의 메소드를 사용할 수 있습니다.

 

샘플

 

출력 결과

enum의 장점

enum은 가독성이 높다는 점 외에도 여러 가지 장점이 있습니다.

final static에서 선언한 정수를 사용하는 것보다 좋은 곳을 샘플을 보면서 설명하겠습니다.

 

샘플 1

 

위의 샘플과 같이 정수형 정수의 경우 두 가지 정보에 대한 정수를 선언하였는데,

값이 같을 경우 데이터의 의미는 다르지만 소스코드 상에서는 같은 정보로 인식됩니다.

그러나 enum의 정수는 같은 값을 두 정수를 다른 정수로 인식됩니다.

 

출력 결과

 

샘플 2

상기의 샘플과 같이 final static에서 정의한 정수를 다른 변수의 값으로 대입하는 경우,

대입되는 변수는 정수가 아니며 의도되지 않은 값도 대입할 수 있습니다.

하지만 enum클래스 객체의 경우 의도되지 않은 값을 대입할 수 없습니다.

 

끝으로

이번 기사는 이상입니다.

다음 시간에는 Object 클래스를 배워보겠습니다.

방문해 주셔서 감사합니다.

コメント