Java 에서 매 거 진 타 입 Enum 의 용법 소개
6562 단어 Java
매 거 유형 소개
public enum Color{
RED,GREEN,BLUE,YELLOW
}
//
public enum WeekDayEnum { Mon, Tue, Wed, Thu, Fri, Sat, Sun }
//
WeekDayEnum today = readToday();
//
switch(today) {
Mon: do something; break;
Tue: do something; break;
Wed: do something; break;
Thu: do something; break;
Fri: do something; break;
Sat: play sports game; break;
Sun: have a rest; break;
}
이러한 매 거 진 날짜 에 대해 JVM 은 실행 기간 에 간단 한 대상 인 스 턴 스 를 만들어 일일이 대응 합 니 다.이 대상 들 은 모두 유일한 idenity 를 가지 고 있 으 며,성형 수치 와 마찬가지 로 switch 문 구 는 이에 따라 점프 를 수행 합 니 다.
왜 Enum 타 입 을 도입 하 셨 어 요?
자바 언어 가 매 거 진 형식 을 도입 하지 않 기 전에 매 거 진 형식 을 나타 내 는 일반적인 모델 은 int 상수 가 있 음 을 나타 내 는 것 입 니 다.일반적으로
public final static
방법 으로 관련 코드 를 정의 한다.예 는 다음 과 같 습 니 다."`java Public static class Rainbow Color{ //
public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int CYAN = 4;
public static final int BLUE = 5;
public static final int PURPLE = 6;
}
```
사용 할 때,우 리 는 프로그램 에서 이 상수 들 을 직접 인용 할 수 있다.그런데 이런 패턴 에 무슨 문제 가 있 을까요?다 들 그렇게 오래 걸 렸 는데 왜 매 거 진 유형(enum type)(자바 1.5 부터 매 거 진 유형 도입)을 도입 해 야 합 니까?다음 과 같은 몇 가지 측면 에서 말하자면-안전성(유형 이 안전 하지 않 음)은 색상 상수 의 대응 값 이 정수 형 이기 때문에 프로그램 실행 과정 에서 색상 변수 에 임의의 정수 치 를 입력 하여 오류 가 발생 할 수 있 습 니 다.
java
public enum Color {
RED, GREEN, BLANK, YELLOW
}
```java
enum Signal {
GREEN, YELLOW, RED
}public class TrafficLight{Signal color=Signal.RED;public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } } “` ```java
public enum Color {
RED(" ", 1), GREEN(" ", 2), BLANK(" ", 3), YELLO(" ", 4);
//
private String name;
private int index;
//
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get set
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
```
java
public enum Color {
RED(" ", 1), GREEN(" ", 2), BLANK(" ", 3), YELLO(" ", 4);
//
private String name;
private int index;
//
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//
@Override
public String toString() {
return this.index+"_"+this.name;
}
}
java
public interface Behaviour {
void print();
String getInfo();
}
public enum Color implements Behaviour{
RED(" ", 1), GREEN(" ", 2), BLANK(" ", 3), YELLO(" ", 4);
//
private String name;
private int index;
//
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//
@Override
public String getInfo() {
return this.name;
}
//
@Override
public void print() {
System.out.println(this.index+":"+this.name);
}
}
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.