-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