12-17~20列挙(enum)
列挙型
class Card{
static final int CLOVER = 0;
static final int HEART = 1;
static final int DIAMOND = 2;
static final int SPADE = 3;
static final int TWO = 0;
static final int THREE = 1;
static final int FOUR = 2;
final int kind;
final int num;
if(Card.CLOVER == Card.TWO) // true이지만 false이여야 의미상 맞음.
}
上記のコードは、次のように記述できます.class Card{
enum Kind { CLOVER, HEART, DIAMOND, SPADE } // 열거형 Kind 정의
enum Value { TWO, THREE, FOUR } // 열거형 Value 정의
final Kind kind; // 타입이 int가 아닌 Kind 인것에 유의
final Value value;
if(Card.Kind.CLOVER == Card.Value.TWO) // 컴파일 에러!! 타입이 달라서 비교 불가.
}
列挙の定義と使用
enum 열거형이름 { 상수명1, 상수명2, ... }
タイプ変数を宣言して使用する方法enum Direction { EAST, SOUTH, WEST, NORTH }
class Unit{
int x, y; // 유닛의 위치
Direction dir; // 열거형 인스턴스 변수를 선언
void init(){
dir = Direction.EAST; // 유닛의 방향을 EAST로 초기화
}
}
列挙定数を比較するために使用できる==およびcompareTo()、equals(オブジェクトであるため)if(dir == Direction.EAST){
x++;
} else if (dir > Direction.WEST) { // Error!! 열거형 상수에 비교연산자 사용불가
...
// a.compareTo(b) : return a - b
} else if (dir.compareTo(Direction.WEST) > 0) { // compareTo()는 가능
...
}
列挙型の祖先-java。lang.Enum
static E[] values()
static E valueOf(String name)
Direction[] dArr = Direction.values();
for(Direction d : dArr) // for(Direction d : Direction.values())
System.out.println("%s=%d%n", d.name(), d.ordinal());
Direction d = Direction.valueOf("WEST") // Direction d = Direction.WEST
Reference
この問題について(12-17~20列挙(enum)), 我々は、より多くの情報をここで見つけました https://velog.io/@oyeon/12-1720-열거형enumテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol