Java 매거진의 역할과 장점에 대해 간단히 이야기하다
Enum은 Sun이 새로 도입한 키워드로서 특수한class처럼 보이며 자신의 변수도 있고 자신의 방법을 정의할 수 있으며 하나 이상의 인터페이스를 실현할 수 있다.우리가 enum 유형을 설명할 때, 우리는 enum 유형이 다음과 같은 특징을 가지고 있다는 것을 알아야 한다.
1.public의 구조 함수가 있을 수 없습니다. 이렇게 하면 고객 코드가 enum의 실례를 새로 만들 수 없습니다.
2. 모든 매거 값은public,static,final입니다.이 점은 매거 값에 대한 바늘일 뿐입니다. 일반 클래스에서 변수를 정의하는 것과 같이 다른 모든 종류의 비매거 변수를 정의할 수 있습니다. 이 변수들은 당신이 사용하고 싶은 수식자를 사용할 수 있습니다.
3. Enum은 기본적으로 java를 구현합니다.lang. Comparable 인터페이스.
4. Enum은 toString 방법을 덮어썼기 때문에 Color를 호출하면Blue.toString () 기본 반환 문자열 "Blue".
5.Enum은 valueOf 방법을 제공했는데 이 방법은 toString 방법과 상응하는 것이다.valueOf("Blue")를 호출하면 Color가 반환됩니다.Blue.따라서 우리가 toString 방법을 다시 쓸 때 이 점을 주의해야 한다. 한 마디로 말하자면valueOf 방법을 상대적으로 다시 써야 한다.
6.Enum은 모든 매거값을 편리하게 훑어볼 수 있는values 방법도 제공합니다.
7.Enum은 또 하나의 oridinal 방법이 있습니다. 이 방법은 매거값이 매거종류에 있는 순서를 되돌려줍니다. 이 순서는 매거값이 성명하는 순서에 따라 결정됩니다. 여기 Color.Red.ordinal () 은 0으로 돌아갑니다.
이러한 기본적인 특성을 이해했으니 어떻게 사용하는지 봅시다.
1. 모든 열거값을 두루 훑어본다.values 방법이 있다는 것을 알게 되었습니다. 우리는 쉽게 ForEach 순환으로 매거진 값을 훑어볼 수 있습니다.
for (Color c: Color.values())
System.out.println(“find value:” + c);
2.enum에서 방법과 변수를 정의한다. 예를 들어 우리는 Color에 색을 랜덤으로 되돌릴 수 있는 방법을 추가할 수 있다.
public enum Color {
Red,
Green,
Blue;
private static int number = Color.values().length ;
public static Color getRandomColor(){
long random = System.currentTimeMillis() % number;
switch ((int) random){
case 0:
return Color.Red;
case 1:
return Color.Green;
case 2:
return Color.Blue;
default : return Color.Red;
}
}
}
이것은 매거 유형에서 변수를 정의하는 방법과 일반 클래스에서 정의하는 방법과 변수가 아무런 차이가 없다는 것을 알 수 있다.유일하게 주의해야 할 것은 변수와 방법 정의가 모든 매거값 정의의 뒤에 있어야 한다는 것이다. 그렇지 않으면 컴파일러가 오류를 낼 것이다.3. 오버라이드(Override) toString, valueOf 방법
앞에서 우리는 enum이 toString,valueOf 등 방법을 제공했다는 것을 알고 있다. 많은 경우 우리는 기본적인 toString 방법을 복재해야 한다. 그러면 enum에 대해 우리는 어떻게 해야 하는가.사실 이것은 일반적인 class를 덮어쓰는 toString 방법과 별 차이가 없다.
….
public String toString(){
switch (this){
case Red:
return "Color.Red";
case Green:
return "Color.Green";
case Blue:
return "Color.Blue";
default:
return "Unknow Color";
}
}
….
이때 우리는 볼 수 있다. 이때 다시 앞의 역행 코드로 인쇄한 것은
Color.Red
Color.Green
Color.Blue
아니다
Red
Green
Blue.
ToString이 확실히 복재된 것을 볼 수 있다.일반적으로 toString을 덮어쓸 때 우리는 그것들의 상호 일치성을 유지하기 위해valueOf 방법을 덮어써야 한다.4. 구조 함수 사용하기
비록enum은public의 구조 함수가 있을 수 없지만, 우리는private의 구조 함수를 정의하여 enum 내부에서 사용할 수 있습니다.아니면 컬러라는 예로
public enum Color {
Red("This is Red"),
Green("This is Green"),
Blue("This is Blue");
private String desc;
Color(String desc){
this.desc =
}
public String getDesc(){
return this.desc;
}
}
여기서 우리는 모든 색깔에 설명 정보를 제공한 다음에 구조 함수를 정의하여 이 설명 정보를 받아들였다.여기 구조 함수는public이나protected가 될 수 없기 때문에 구조 함수는 내부에서만 사용할 수 있고 고객 코드는new의 매거진 값의 실례가 나올 수 없습니다.이것도 완전히 이치에 부합된다. 왜냐하면 우리는 매거값이publicstaticfinal의 상량이라는 것을 알고 있기 때문이다.
5. 특정 인터페이스 구현
우리는 이미 엔움이 변수와 방법을 정의할 수 있다는 것을 알고 있다. 이것은 하나의 인터페이스를 실현하는 것도 일반class가 하나의 인터페이스를 실현하는 것과 같다. 여기는 예시를 하지 않는다.
6. 매거값 자신의 방법을 정의한다.
앞에서 우리는 enum을 위한 방법을 정의할 수 있지만, 사실 우리는 심지어 모든 매거값에 대한 방법을 정의할 수 있다.이렇게 하면 우리 앞에 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매거의 역할과 장점은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.