열거형(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개의 댓글

관련 채용 정보