Search

반응형

'enum'에 해당되는 글 1건

  1. 2019.08.12 [Java_Tutorial]35강-자바 코딩, Enum 타입[Enum Types, 자바 프로그래밍 기초 , 자바 튜토리얼]
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

Enum 타입 (Enum Types)

Enum 타입은 미리 정의한 상수들의 세트가 되는 변수로 특별한 데이터 타입이다..그 변수는 미리 정의된 그 값들 중 하나와 같아야 한다. 방위(동서남북)를 나타내거나 요일을 나타내는 공통 샘플도 있다.

상수인 이유로 enum타입 필드의 이름들은 대문자이다.

자바 언어에서는 enum키워드를 사용해서 enum타입을 정의한다. 예를 들어 요일 enum타입을 정의할 수 있다.

     public enum Day {

        SUNDAY, MONDAY, TUESDAY, WEDNESDAY,. THURSDAY, FRIDAY, SATURDAY

     }

고정된 상수의 세트를 대표하기 위해 필요한 때에 enum타입을 사용하는게 좋다. 우리가 아는 모든 가능한 종류의 세트를 사용할 수 있다. 메뉴, 명령어 등등

 

 

 

아래는 Day enum 타입 예제이다.

   public class EnumTest {

      public enum Day {

         SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY

      }

      Day day;

      public EnumTest(Day day) {

         this.day = day;

      }

      public void tellItLikeItIs() {

          switch(day) {

          case MONDAY:

               System.out.println("Mondays are bad");

          break;

          case FRIDAY:

               System.out.println("Fridays are better");

          break;

          case SATURDAY: case SUNDAY:

              System.out.println("Weekends are best");

          break;

          default:

               System.out.println("Midweek days are so-so");

          }

    }

    public static void main(String[] args) {

        EnumTest firstDay = new EnumTest(Day.MONDAY);

        firstDay.tellItLikeItIs();

        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);

        thirdDay.tellItLikeItIs();

        EnumTest fifthDay = new EnumTest(Day.FRIDAY);

        fifthDay.tellItLikeItIs();

        EnumTest sixthDay = new EnumTest(Day.SATURDAY);

        sixthDay.tellItLikeItIs();

       EnumTest seventhDay = new EnumTest(Day.SUNDAY);  

       seventhDay.tellItLikeItIs();

    }

}

아래는 결과이다.

Mondays are bad

Midweek days are so-so

Fridays are better

Weekends are best

Weekends are best

자바 프로그래밍 언어의 enum 타입(Java Programming) 다른 언어에 대비 훨씬 더 파워풀하다. Enum 선언은 클래스로 정의된다. (enum type으로 불린다.) enum 클래스 몸체는 메서드와 다른 필드를 포함할 수 있다. 컴파일러는 enum을 생성할 때 자동으로 몇 개의 특별한 메서드를 추가한다. 예를 들어 선언한 enum의 값 전체를 포함한 배열을 리턴하는 static 값 메서드가 있다. 이 메서드는 enum타입의 값을 for-each 구문을 이용해 공통으로 사용될 수 있다. 예를 들어 아래 예저는 Planet 클래스 예제로 태양계의 모든 행성을 for 순환문으로 만든 것이다.

For(Planet p : Planet.values()) {

}

반응형