关于我的 Poker Java 程序,选择枚举而不是字符和整数是否是一个明智的决定?
据我所知,为 char 分配一个单独的整数值的好处是,在比较纸牌值以决定获胜者时,可以轻松应用数学运算符。然而,如果是这样的话,我不知道枚举是可能的。
有人可以向我解释一下每个的 adv/disadv 吗?
我声明卡片等级的第一个选项是枚举:
public enum Rank {
DEUCE (1),
THREE (2),
FOUR (3),
FIVE (4),
SIX (5),
SEVEN (6),
EIGHT (7),
NINE (8),
TEN (9),
JACK (10),
QUEEN (11),
KING (12),
ACE (13)
}
public enum Suit {
CLUBS (1),
DIAMONDS (2),
HEARTS (3),
SPADES (4)
}
我的第二个选择是像这样分配 int 值的静态最终字符:
public static final char ACE = 'A';
public static final char TWO = '2';
public static final char THREE = '3';
public static final char FOUR = '4';
public static final char FIVE = '5';
public static final char SIX = '6';
public static final char SEVEN = '7';
public static final char EIGHT = '8';
public static final char NINE = '9';
public static final char TEN = 'T';
public static final char JACK = 'J';
public static final char QUEEN = 'Q';
public static final char KING = 'K';
public Rank (char c)
{
switch (c)
{
case TWO:
_val = 0;
break;
case THREE:
_val = 1;
break;
case FOUR:
_val = 2;
break;
case FIVE:
_val = 3;
break;
case SIX:
_val = 4;
break;
case SEVEN:
_val = 5;
break;
case EIGHT:
_val = 6;
break;
case NINE:
_val = 7;
break;
case 'T':
_val = 8;
break;
case 'J':
_val = 9;
break;
case 'Q':
_val = 10;
break;
case 'K':
_val = 11;
break;
case 'A':
_val = 12;
break;
default:
_val = -1;
}
}
谢谢!
最佳答案
我更喜欢枚举
。代码看起来更简洁,IDE 可以帮助您避免遗漏 switch
语句中的 case。
关于java - 哪个更适合静态数据 - final char 还是 enum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246010/