열거형(Enum)

김수민·2023년 3월 12일
0

백엔드 부트캠프

목록 보기
17/52

열거형(enumerated type): 여러 상수를 보다 편리하게 선언할 수 있도록 만들어진 자바의 문법요소

열거형(Enum)

  • 상수: 변하지 않는 값. final 키워드를 사용하여 선언할 수 있음
  • 열거형: 몇 가지로 한정된 변하지 않는 데이터를 다루는데 사용
class Seasons {
    public static final Seasons SPRING = new Seasons();
    public static final Seasons SUMMER = new Seasons();
    public static final Seasons FALL   = new Seasons();
    public static final Seasons WINTER = new Seasons();
}

class Frameworks {
    public static final Frameworks DJANGO  = new Frameworks();
    public static final Frameworks SPRING  = new Frameworks();
    public static final Frameworks NEST    = new Frameworks();
    public static final Frameworks EXPRESS = new Frameworks();
}

-> 상수명 중복과 타입 안정성 문제를 해결할 수 있지만, 보기에 코드가 길어지고 사용자 정의 타입이기 때문에 switch문에 할용할 수 없음

enum Seasons { SPRING, SUMMER, FALL, WINTER }
enum Frameworks { DJANGO, SPRING, NEST, EXPRESS }

-> 앞의 문제를 모두 해결할 수 있고 코드를 단순하고 가독성이 좋게 만들 수 있음. 또한 enum으로 정의한 상수는 switch문에서도 사용이 가능함

열거형의 사용

enum 열거형이름 {상수명1, 상수명2, 상수명3, ...}

관례적으로 대문자로 작성.
자동적으로 0부터 시작하는 정수값이 할당되어 각각의 상수를 가리킴.

리턴타입메소드(매개변수)설명
Stringname()열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일함.
intordinal()열거 객체의 순번(0부터 시작)을 리턴함.
intcompareTo(비교값)주어진 매개값과 비교해서 순번 차이를 리턴함.
열거 타입valueOf(String name)주어진 문자열의 열거 객체를 리턴함.
열거 배열values()모든 열거 객체들을 배열로 리턴함.

0개의 댓글