Я новичок в классе типа Enum. У меня есть 2 класса Enum, один для ранга один для костюмов, как показано ниже.
public enum Rank
{
ACE(1), TWO(2), THREE(3),
FOUR(4), FIVE(5), SIX(6),
SEVEN(7), EIGHT(8), NINE(9),
TEN(10), JACK(J), QUEEN(Q),
KING(K);
//private fields
private final int rankValue;
//with constructor passing rankValue
//with method getRank
}
public enum Suit
{
HEARTS("H"),
SPADES("S"),
DIAMONDS("D"),
CLUBS("C");
private final String suitText;
//with constructor and printSuit()
}
в моем основном методе я выясняю, как их распечатать следующим образом:
S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK .... за ними следуют бубны и трефы.
большое спасибо всем.
Перебрать Rank / Suits values().
J, Q, K - представления JACK QUEEN и KING.
@daniu получит ACE, TWO ... если переберет .values();)




В основном enum - это просто еще один класс java с некоторыми особенностями, но в основном вы можете делать то же самое, что и в классическом классе, поэтому для этого случая, например. следующий:
public enum CardsEnumWithProps {
HEARTS("H"),
SPADES("S"),
DIAMONDS("D"),
CLUBS("C");
private String stringSign;
private CardsEnumWithProps(String strSign) {
this.stringSign = strSign; //stringSign = strSign
}
public String getStr() {
return this.stringSign;
}
}
Затем вы можете вызвать .getStr() по значению перечисления, например:
System.out.println(CardsEnumWithProps.DIAMONDS.getStr());
И получаем на выходе D
Для каждого элемента в перечислении вы можете перебирать .values() из Enum
CardsEnumWithProps[] cards = CardsEnumWithProps.values();
for (int i = 0; i < cards.length; i++) {
System.out.println(cards[i].name() + " --- " + cards[i].getStr());
}
И ты получишь
HEARTS --- H
SPADES --- S
DIAMONDS --- D
CLUBS --- C
Вы можете сделать это с помощью следующего кода:
Rank [] ranks = Rank.values();
Suit [] suits = Suit.values();
for (int i = 0; i < suits.length; i++) {
for (int j = 0; j < ranks.length; j++) {
System.out.print(suits[i].getSuitText + ranks[j].getRank()+"\s");
}
System.out.println("\n");
}
Пожалуйста, объясните свой ответ. Что делает ваш код и почему он решает проблему?
Ваше перечисление
RankобъявляетJACK(J), QUEEN(Q), KING(K)? Что такоеJ,QиK?