AVA-列挙(1)
列挙(enum)
つまり、値とタイプをチェックします.
class Card{
enum Kind { CLOVER, HEART, DIAMOND, SPADE }
//열거형 kind를 정의 열거형 상수 앞에서부터 0,1,2,3 의 값을 가짐
enum Value { TWO, THREE, FOUR }
//열거형 value를 정의
final kind kind; //타입이 int가 아닌 kind임에 유의하자.
final Value value;
}
///////////////////////////////
if (Card.Kind.CLOVER == CARD.Value.TWO){
// 컴파일에러, 타입이 달라 비교 불가능.
列挙タイプの定義方法
enum 열거형이름 {상수1, 상수2, ....}
//ex)
//enum Direction{ EAST, SOUTH, WEST, NORTH }
タイプ変数を宣言して使用する方法class unit{
int x,y; //유닛의 위치
Direction dir; //열거형 인스턴스 변수를 선언
void init(){
dir = Direction.East; //유닛의 방향을 EAST로 초기화
}
}
if(dir==Direction.EAST{
x++;
} else if ( dir > Direction.WEST) //에러, 열거형 상수에 비교연산자 사용 불가능
{
...
} else if dir.compareTo(Direction.WEST>0)
{
//에러, compareTo()는 사용 가능.
}
列祖
String name()
:열거형 상수의 이름을 문자열로 반환
int ordinal()
:열거형 상수가 정의된 순서를 반환(0부터 시작)
T valueOf(Class<T> enumType, String name)
:지정된 열거형에서 name과 일치하는 열거형 상수를 반환
// - values(), valueOf()는 컴파일러가 자동으로 추가
static E[] values()
static E valueOf(String name)
Direction[] dArr = Direction.values();
for(Direction d : dArr) // for(Direction d : Direction.values())
System.out.printf("%s=%d%n", d.name(), d.ordinal());
Reference
この問題について(AVA-列挙(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@jo_dbsgh95/JAVA-지네릭스Generics-6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol