열거는 표준화 된 형태의 매개 변수이므로 int- 타입 매개 변수가 유발할 수있는 퍼지 개념을 명시 적으로 교체 할 수 있습니다. 열거는 유형 불일치를 고려하지 않고 클래스 및 배열과 같습니다.
Sun이 소개 한 새로운 키워드로서 Enum은 특별 수업처럼 보입니다. 또한 자체 변수가 있고 자체 방법을 정의하며 하나 이상의 인터페이스를 구현할 수 있습니다. 열거 유형을 선언 할 때, 우리는 열거 유형에 다음과 같이 몇 가지 특성이 있음을 알 수 있습니다.
1. 공개 생성자를 가질 수 없으며, 그렇게하면 클라이언트 코드가 새 인스턴스의 열거 인스턴스를 생성 할 수 없도록 할 수 있습니다.
2. 모든 열거 값은 공개, 정적, 최종입니다. 이것은 열거 값에만 해당됩니다. 일반 클래스에서 변수를 정의하는 것과 같은 모든 유형의 다른 비 에너머 변수를 정의 할 수 있습니다. 이러한 변수는 원하는 수정 자로 만들 수 있습니다.
3. Enum은 기본적으로 java.lang.comparable 인터페이스를 구현합니다.
4. enum은 tostring 메소드를 무시하므로 color.blue.tostring ()을 호출하면 기본적으로 문자열 "blue"를 반환합니다.
5. ENUM은 TOSTRING 방법에 해당하는 값의 방법을 제공합니다. valueof ( "blue")는 Color.Blue를 반환합니다. 그러므로 우리는 Tostring 방법을 스스로 작성할 때 이것에주의를 기울여야합니다. 다시 말해, 우리는 그에 따라 메소드의 가치를 다시 작성해야합니다.
6. Enum은 또한 값 방법을 제공하여 모든 열거 값을 쉽게 통과 할 수 있습니다.
7. 열거는 또한 오리 줄기 방법을 가지고 있으며,이 방법은 열거 클래스에서 열거 값의 순서를 반환합니다. 이 순서는 열거 값 선언 순서에 따라 다릅니다. 여기서 color.red.ordinal ()은 0을 반환합니다.
이러한 기본 기능을 이해 한 후에는 사용 방법을 살펴 보겠습니다.
1. 모든 열거 값을 가로 지르십시오. 값 방법이 있음을 알면 Foreach 루프를 사용하여 열거 값을 친숙한 방식으로 가로 질러 이동할 수 있습니다.
for (color c : color.values ()) system.out.println ( "찾기 값 :" + c);
2. 열거에서 방법과 변수를 정의하십시오. 예를 들어, 색상을 무작위로 반환하기 위해 색상에 메소드를 추가 할 수 있습니다.
공개 열거 색 {빨간색, 녹색, 파란색; 비공개 정적 int 번호 = color.values (). 길이; 공개 정적 색상 getRandomColor () {long random = system.currentTimeMillis () % 숫자; 스위치 ((int) random) {case 0 : return color.red; 사례 1 : return color.green; 사례 2 : return color.blue; 기본값 : return color.red; }}}열거 유형에서 변수와 방법을 정의하고 일반 클래스에서 방법과 변수를 정의하는 것에는 차이가 없음을 알 수 있습니다. 유일한 것은 모든 열거 값 정의 후에 가변 및 메소드 정의가 배치되어야한다는 것입니다. 그렇지 않으면 컴파일러에 오류가 발생합니다.
3. TOSTRING, VALUESOF METHOD를 무시하십시오
우리는 Enum이 Tostring, Valuef 등과 같은 방법을 제공한다는 것을 이미 알고 있습니다. 기본 Tostring 메소드를 무시 해야하는 경우가 많으므로 Enum은 어떻게해야합니까? 실제로 이것은 일반 클래스로 토스트 링 방법을 재정의하는 것과 다르지 않습니다.
…. public String toString () {switch (this) {case red : return "color.red"; CASE GREEN : "Color.Green"을 반환합니다. Case Blue : "Color.blue"를 반환합니다. 기본값 : "알 수없는 색상"을 반환합니다. }}….현재, 우리는 이전 트래버스 코드로 인쇄 된 것이
Color.red Color.Green Color.Blue
대신에
레드 그린 블루.
Tostring이 실제로 덮어 쓴 것을 볼 수 있습니다. 일반적으로 토스트링을 덮어 쓰면 일관성을 유지하기 위해 메소드의 가치를 덮어 씁니다.
4. 생성자 사용
Enum은 공개 생성자를 가질 수는 없지만 개인 생성자를 정의하여 열거 내부에 사용할 수 있습니다. 색상 예제를 사용합시다.
public enum color {빨간색 ( "이것은 빨간색"), 녹색 ( "this is green"), blue ( "this is blue"); 개인 문자열 desc; 색상 (String desc) {this.desc =} public String getDesc () {return this.desc; }}여기서 우리는 각 색상에 대한 설명 정보를 제공 한 다음이 설명 정보를 수락하기 위해 생성자를 정의합니다.
생성자가 내부적으로 만 사용할 수 있도록 생성자는 공개적이거나 보호 될 수 없으며 클라이언트 코드는 열거 값의 인스턴스를 새롭게 할 수 없다는 점에 유의해야합니다. 우리는 열거 값이 공개 정적 최종의 상수 일 뿐이라는 것을 알고 있기 때문에 이것은 완전히 합리적입니다.
5. 특정 인터페이스를 구현하십시오
우리는 ENUM이 변수와 방법을 정의 할 수 있다는 것을 이미 알고 있습니다. 인터페이스를 구현하고 일반 클래스와 같은 인터페이스를 구현해야합니다. 나는 여기서 예를 들지 않을 것입니다.
6. 자신의 열거 값 방법을 정의하십시오.
우리는 이전에 일부 방법이 열거에 대해 정의 될 수 있음을 보았지만 실제로 각 열거 값에 대한 방법을 정의 할 수도 있습니다. 이런 식으로, Tostring을 재정의하는 이전의 예는 이와 같이 다시 작성할 수 있습니다.
public enum color {red {public String tostring () {return "color.red"; }}, green {public String toString () {return "color.green"; }}, blue {public String toString () {return "color.blue"; }}; }논리적으로 말하면, 이것은 "글로벌"을 제공하는 원래 Tostring 방법보다 명확합니다.
일반적으로, Enum은 완전히 새로운 유형으로서 프로그래머가 더 간단하고 이해하기 쉬운 코드를 작성하도록 돕기를 희망합니다.
사람들은 일반적으로 열거의 일부 고급 기능을 사용할 필요가 없습니다. 그렇지 않으면 단순하고 이해하기 쉬운 독창적 인 의도에 위배됩니다.
위의 기사는 Jave 열거의 역할과 이점에 대해 간단히 이야기합니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.