Java 매거진의 역할과 장점에 대해 간단히 이야기하다

매거는 일종의 규범으로 매개 변수의 형식을 규범화시켰다. 이렇게 하면 유형의 불일치를 고려하지 않고 int형 매개 변수가 가져올 수 있는 모호한 개념을 현저하게 대체할 수 있다.
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매거의 역할과 장점은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기