산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java Enum 완전 정복: Enum과 Enum 클래스 종합 가이드

Java Enum

이 튜토리얼에서는 Java enum에 대해 학습합니다. 예제와 함께 enum과 enum 클래스 생성 및 사용법을 익힙니다.

Java에서 enum(열거형 약자)은 고정된 상수 값 집합을 가진 타입입니다. enum 키워드로 선언합니다. 예:

 enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE }

여기서 Size라는 enum을 생성했습니다. SMALL, MEDIUM, LARGE, EXTRALARGE 고정 값이 포함됩니다.

중괄호 안의 이 값들을 enum 상수(값)라고 합니다.

참고: Enum 상수는 보통 대문자로 표기합니다.


예제 1: Java Enum

 enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE } class Main { public static void main(String[] args) { System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); } }

출력

 SMALL MEDIUM

위 예제에서 보듯 enum 이름으로 상수 값에 접근합니다.

또한 enum 타입 변수 생성 가능. 예:

 Size pizzaSize;

여기서 pizzaSize는 Size 타입 변수. 4개 값만 할당 가능.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

예제 2: switch 문과 Java Enum

 enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE } class Test { Size pizzaSize; public Test(Size pizzaSize) { this.pizzaSize = pizzaSize; } public void orderPizza() { switch(pizzaSize) { case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; } } } class Main { public static void main(String[] args) { Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); } }

출력

 I ordered a medium size pizza.

위 프로그램에서 Size enum 타입 생성. pizzaSize 변수를 Size 타입으로 선언.

pizzaSize 변수는 4개 값(SMALL, MEDIUM, LARGE, EXTRALARGE)만 할당 가능.

다음 문장 주목:

 Test t1 = new Test(Size.MEDIUM);

Test 클래스 내 Test() 생성자 호출. 이제 pizzaSize 변수에 MEDIUM 상수 할당.

값에 따라 switch case 문의 한 case 실행.


Java Enum 클래스

Java에서 enum 타입은 특수한 클래스 타입으로 간주됩니다. Java 5에 도입되었습니다.

Enum 클래스는 일반 클래스처럼 메서드와 필드를 포함할 수 있습니다.

 enum Size { constant1, constant2, …, constantN; // 메서드와 필드 }

Enum 클래스 생성 시 컴파일러가 각 enum 상수의 인스턴스(객체) 생성. 모든 enum 상수는 기본적으로 public static final.


예제 3: Java Enum 클래스

 enum Size{ SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() { // this는 SMALL 객체 참조 switch(this) { case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; } } public static void main(String[] args) { // getSize() 호출 // SMALL 객체 사용 System.out.println("The size of the pizza is " + Size.SMALL.getSize()); } }

출력

 The size of the pizza is small

위 예제에서 Size enum 클래스 생성. SMALL, MEDIUM, LARGE, EXTRALARGE 네 상수 포함.

Size가 enum 클래스이므로 컴파일러가 각 enum 상수 인스턴스 자동 생성.

main() 메서드 내부에서 인스턴스 SMALL로 getSize() 메서드 호출.

참고: 일반 클래스처럼 enum 클래스도 생성자 포함 가능. 자세히 알아보려면 Java enum constructor 방문.


Java Enum 클래스 메서드

Enum 클래스에는 바로 사용 가능한 미리 정의된 메서드들이 있습니다.

1. Java Enum ordinal()

ordinal() 메서드는 enum 상수 위치를 반환. 예:

 ordinal(SMALL) // 0 반환

2. Enum compareTo()

compareTo() 메서드는 ordinal 값 기반으로 enum 상수 비교. 예:

 Size.SMALL.compareTo(Size.MEDIUM) // ordinal(SMALL) - ordinal(MEDIUM) 반환

3. Enum toString()

toString() 메서드는 enum 상수 문자열 표현 반환. 예:

 SMALL.toString() // "SMALL" 반환

4. Enum name()

name() 메서드는 enum 상수 정의된 이름을 문자열로 반환. 반환 값은 final. 예:

 name(SMALL) // "SMALL" 반환

5. Java Enum valueOf()

valueOf() 메서드는 문자열 받아 같은 이름의 enum 상수 반환. 예:

 Size.valueOf("SMALL") // SMALL 상수 반환.

6. Enum values()

values() 메서드는 모든 enum 상수를 포함한 enum 타입 배열 반환. 예:

 Size[] enumArray = Size.value();

왜 Java Enum인가?

Java에서 enum은 int 상수 사용을 대체하기 위해 도입되었습니다.

int 상수 모음 사용했다고 가정:

 class Size { public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; }

문제는 상수 출력 시 발생. 숫자만 출력되어 도움 안 됨.

int 상수 대신 enum 사용. 예:

 enum Size { SMALL, MEDIUM, LARGE, EXTRALARGE }

코드가 더 직관적.

또한 enum은 컴파일 타임 타입 안전성 제공.

Size 타입 변수 선언. 예:

 Size size;

여기서 변수가 네 값 중 하나만 가짐 보장. 네 값 외 다른 값 전달 시도 시 컴파일러 에러 발생.

java

  1. C 열거형(Enum) 마스터하기: 정의, 선언, 플래그 연산
  2. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  3. Java 주석: 종류, 사용법, 모범 사례
  4. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  5. Java String 마스터하기: 생성, 메서드, 모범 사례
  6. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  7. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  8. Java Enum 완전 정복: Enum과 Enum 클래스 종합 가이드
  9. Java Enum 생성자 완벽 해설: 실전 예제로 이해하기
  10. Java Enum 문자열 표현 마스터: 기본값, 오버라이딩, 고급 패턴