-4
我聽說過關於枚舉類型,我在網上查了一下,但是我無法找到一個比使用常量更好的解釋。任何人都可以解釋它是如何比使用常數和如何使用它下面的代碼,如果我們想申請的更好:如何使用枚舉? java
(可以用它從我的撲克卡類定義了以下數據: - enum Suit {HEARTS, DIAMONDS, SPADES, CLUBS} - enum Face {ACE, JACK, QUEEN, KING}
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();
}
}
常量通常是未定義的並且難以控制,枚舉使得您可以更加嚴格地控制可接受的值以及類或方法可能期望的值,而不是使用例如'Enums'和'Constants'這樣的'int' – MadProgrammer 2015-02-06 02:26:34
不是一回事......你的問題聽起來像是一個是另一個的補充;他們不一定那樣。一個'常量'有一個值,即_constant_和一個'枚舉'可以有_multiple_值,您可以根據需要進行分配。 – Brian 2015-02-06 02:26:38
*「如何比使用常量更好」*這是由[官方教程](http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)解釋的。 – Radiodef 2015-02-06 02:27:11