유형의 안전성을 보장하기 위해 주문 상태, 문서 유형 등과 같은 유형 상수를 정의하는 대신 사용할 수 있습니다. 예를 들어 일반 String 클래스를 사용하여 주문 상태를 나타내는 경우 호출자는 다음과 같은 문자열을 전달할 수 있습니다. 은(는) 수신자에게 주문 상태 범위 내에 있지 않습니다. 이런 오류는 컴파일 단계에서 찾을 수 없습니다
Java 열거형 클래스는 본질적으로 다중 인스턴스 패턴의 구현이며, 싱글톤 패턴은 다중 인스턴스 패턴의 특별한 경우입니다
Enumeration 클래스는 상속될 수 없습니다. 예를 들어 enumA 확장 enumB는 사용할 수 없습니다.
enum은 일부 액세스 가능 및 공개 상수를 포함하는 특수 클래스로 간주될 수 있습니다. 실제로는 액세스 가능하고 공개 상수로서 클래스 로딩 프로세스 중에 상수 풀로 구문 분석되었습니다. 사용자가 상수를 사용할 때 상수의 의미를 더 쉽게 표시할 수 있도록 합니다. 동시에 특정 유형의 모든 상수를 반복하고 스위치 문 등에 사용하여 상수 구성을 용이하게 합니다.
enum의 존재 자체는 상수의 가독성 문제를 해결하기 위한 것입니다. enum이 없기 전에는 상태를 표시하기 위해 1, 2 등의 가독성이 좋지 않은 경우가 많았습니다. 긴 문장을 작성하기 위해 이 일련의 문제를 해결하기 위해 jdk5에 이 함수가 추가되었습니다. 본질은 클래스이지만, 열거형을 생성할 때 자동으로 value(), ordinal() 및 기타 메서드를 생성하고, 상수가 나타날 시나리오를 다루는 스위치 문을 지원하므로 상수를 직접 정의하는 것보다 사용하기가 더 편리합니다. .
유형의 안전성을 보장하기 위해 주문 상태, 문서 유형 등과 같은 유형 상수를 정의하는 대신 사용할 수 있습니다.
예를 들어 일반 String 클래스를 사용하여 주문 상태를 나타내는 경우 호출자는 다음과 같은 문자열을 전달할 수 있습니다. 은(는) 수신자에게 주문 상태 범위 내에 있지 않습니다. 이런 오류는 컴파일 단계에서 찾을 수 없습니다
Java 열거형 클래스는 본질적으로 다중 인스턴스 패턴의 구현이며, 싱글톤 패턴은 다중 인스턴스 패턴의 특별한 경우입니다
Enumeration 클래스는 상속될 수 없습니다. 예를 들어 enumA 확장 enumB는 사용할 수 없습니다.
내부 유형이 순서대로 포함된 열거형 클래스는 Comparable 인터페이스를 구현합니다.
Effective Java 6장에 자세한 설명이 있으니 확인해보세요
단순히 enum을 Remark 정보가 포함된 int 유형으로 생각하면 됩니다.
당신의 상황이 무서워서 제 개인적인 생각만 말씀드리겠습니다
enum은 일부 액세스 가능 및 공개 상수를 포함하는 특수 클래스로 간주될 수 있습니다. 실제로는 액세스 가능하고 공개 상수로서 클래스 로딩 프로세스 중에 상수 풀로 구문 분석되었습니다. 사용자가 상수를 사용할 때 상수의 의미를 더 쉽게 표시할 수 있도록 합니다. 동시에 특정 유형의 모든 상수를 반복하고 스위치 문 등에 사용하여 상수 구성을 용이하게 합니다.
이 질문은 너무 광범위하고 대답하기 어렵습니다.
enum은 기본적으로 java.lang.Enum을 상속하는 클래스이며 싱글톤 및 입력이 제한되어야 하는 경우에 사용할 수 있습니다
먼저 개인적인 피상적이고 주관적인 이해에 대해 이야기하고 몇 가지 아이디어를 제공하겠습니다.
제 생각에 enum의 목적은 다음과 같습니다.
상수 관리 수단을 제공하세요.
네임스페이스.
enum의 존재 자체는 상수의 가독성 문제를 해결하기 위한 것입니다. enum이 없기 전에는 상태를 표시하기 위해 1, 2 등의 가독성이 좋지 않은 경우가 많았습니다. 긴 문장을 작성하기 위해 이 일련의 문제를 해결하기 위해 jdk5에 이 함수가 추가되었습니다. 본질은 클래스이지만, 열거형을 생성할 때 자동으로 value(), ordinal() 및 기타 메서드를 생성하고, 상수가 나타날 시나리오를 다루는 스위치 문을 지원하므로 상수를 직접 정의하는 것보다 사용하기가 더 편리합니다. .