나는 enums 타입에 대해 들었고 온라인으로 살펴 보았지만 상수를 사용하는 것보다 낫다는 좋은 설명을 찾을 수 없었다. - enum Suit {HEARTS, DIAMONDS, SPADES, CLUBS} - enum Face {ACE, JACK, QUEEN, KING}
enum을 사용하는 방법? 자바
(내 포커 카드 클래스에서 다음과 같은 데이터를 정의하는 데 사용할 수 있습니다 : 상수를 사용하는 방법과 우리가 그것을 적용하기를 원한다면 다음 코드를 사용하는 것보다 더 나은 방법 아무도 설명 할 수
public class Card {
final static int MAX_SUITS = 4;
final static int MAX_FACE_VALUES = 13;
private int suit;
private int faceValue;
public Card(int faceValue, int suit) {
this.suit = suit;
this.faceValue = faceValue;
}
public int getSuit() {
return suit;
}
public int getFaceValue() {
return faceValue;
}
public void setSuit(int suit) {
this.suit = suit;
}
public void setFaceValue(int faceValue) {
this.faceValue = faceValue;
}
public String convertSuitToString() {
if (this.suit >= 1 && this.suit <= 4) {
if (this.suit == 1)
return "HEARTS";
else if (this.suit == 2)
return "DIAMONDS";
else if (this.suit == 3)
return "SPADES";
else if (this.suit == 4)
return "CLUB";
}
return "((Invalid Suit Entry))";
}
public String convertFaceToString() {
if (this.faceValue >= 1 && this.faceValue <= 13) {
if (this.faceValue == 1)
return "ACE";
else if (this.faceValue >= 2 && this.faceValue <= 10)
return this.faceValue + "";
else if (this.faceValue == 11)
return "JACK";
else if (this.faceValue == 12)
return "QUEEN";
else if (this.faceValue == 13)
return "KING";
}
return "((Invalid Face Value Entry))";
}
public String toString() {
return "You got " + convertFaceToString() + " of " + convertSuitToString();
}
}
는
상수는 일반적으로 정의되어 있지 않으며 제어하기 어렵습니다. enum은 수용 할 수있는 값과 클래스 또는 메소드가 예상 할 수있는 것보다 훨씬 엄격하게 제어합니다. – MadProgrammer
'Enums' 및'Constants'는 다음과 같습니다. 같은 것은 아닙니다 ... 당신의 질문은 하나가 다른 것의 보완적인 것처럼 소리가납니다; 반드시 그런 것은 아닙니다. '상수'는 하나의 값을 가지며, 즉'_constant_ '이고'열거 형'은 필요에 따라 지정할 수있는 값을 여러 개 가질 수 있습니다. – Brian
* "상수 사용보다 낫다"* [공식 튜토리얼] (http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)에서 설명합니다. – Radiodef