cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 삼성SDS 브라이틱스
  • Brightics
  • 브라이틱스 스튜디오 사용법
  • 인공지능
  • Brightics AI
  • 크롤링
  • 브라이틱스 스튜디오
  • 생활코딩
  • 브라이틱스
  • 브라이틱스 튜토리얼
  • 차원축소
  • web
  • 데이터분석
  • Brightics Studio
  • react
  • javascript
  • beautifulsoup
  • 삼성SDS
  • 머신러닝
  • 데이터 사이언스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

[Java] Enum 클래스에 대해 알아보자
Programming/Java

[Java] Enum 클래스에 대해 알아보자

2020. 9. 14. 22:46
반응형

안녕하세요. 이번 포스팅에서는 enum 클래스에 대해 알아보겠습니다.

 

enum

enum은 enumerate를 줄여쓰는 단어로 '열거하다'라는 의미를 갖고 있습니다.

JDK1.5 버전부터 기존의 C언어와 C++에서 사용된 열거체보다 더욱 향상된 성능의 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었습니다.

 

우리는 프로그래밍을 하다보면 공통적으로 한정된 데이터를 다루는 경우가 많습니다.

예를 들자면 '계절', '태양계 행성', '요일' 등이 있습니다.

이렇게 한정된 데이터는 하나의 열거형으로 묶어주면 편리하게 관리할 수 있습니다.

 

Enum 클래스 선언 방법

클래스 외부에서 선언하는 방법

enum Season { 
    SPRING, SUMMER, FALL, WINTER 
}

클래스 내부에서 선언하는 방법

public class EnumExample {
    
    public enum Season {
        SPRING, SUMMER, FALL, WINTER
    }
}

 

Enum 클래스 사용 방법

// 클래스 외부에서 선언
enum Season {
    SPRING, SUMMER, FALL, WINTER
}

public class EnumExample {

    public String name;       // 이름
    public String likeSeason; // 좋아하는 계절
    public Season hateSeason; // 싫어하는 계절

    public static void main(String[] args) {
        EnumExample person = new EnumExample();
        
        person.name = "가나다";
        person.likeSeason = Season.SUMMER;
        person.hateSeason = Season.WINTER;
        
        System.out.println("이름: " + person.name);
        System.out.printf("좋아하는 계절: %s, 싫어하는 계절: %s", person.likeSeason, person.hateSeason);
    }

}

실행 결과

열거객체 메서드

valueOf()

enum Season { 
    SPRING, SUMMER, FALL, WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        Season season = Season.valueOf("WINTER");
        System.out.println(season); //가을
    }
}

valueOf() 메서드는 인자로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴합니다.

 

values()

enum Season { 
    SPRING, SUMMER, FALL, WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        
        // enhanced for loop
        for (Season season : Season.values()) {
            System.out.println(season); // SPRING, SUMMER, FALL, WINTER 차례로 출력 
        }
    }
}

values() 메서드는 열거 타입의 모든 열거객체들을 배열로 만들어 리턴합니다.

 

ordinal()

enum Season { 
    SPRING, SUMMER, FALL, WINTER 
}

public class EnumExample {
    
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season.ordinal()); // 3
    }
}

Ordinal() 메서드는 전체 열거 객체 중 몇 번째의 객체인지 리턴합니다.

순번은 배열과 마찬가지로 0부터 인덱스가 시작됩니다.

반응형
저작자표시 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] 캡슐화와 은닉성에 대해 알아보자  (0) 2020.10.02
[Java] String / StringBuilder / StringBuffer의 차이점은 무엇일까?  (0) 2020.09.27
[Java] 메서드 정적 바인딩과 동적 바인딩  (0) 2020.07.05
[Java] 참조형식과 호출되는 메서드의 관계  (0) 2020.07.04
[Java] Log4j에 대해 알아보자  (0) 2019.11.11
    'Programming/Java' 카테고리의 다른 글
    • [Java] 캡슐화와 은닉성에 대해 알아보자
    • [Java] String / StringBuilder / StringBuffer의 차이점은 무엇일까?
    • [Java] 메서드 정적 바인딩과 동적 바인딩
    • [Java] 참조형식과 호출되는 메서드의 관계
    cbw1030
    cbw1030

    티스토리툴바