やあみんな、私はこのサイトにenum
不慣れですが、sに関する多くの情報を見てきました. 私がやろうとしているのは、カード クラスのカード コンストラクターに int 値を取り込ませ、それらの値に関連付けられたランクとスーツを返すことです。これは、私が Card クラスで取り組んでいるものです。
package blackjack;
public class Card {
static Rank rank;
static Suit suit;
public enum Rank{ACE(1),TWO(2),THREE(3),FOUR(4),FIVE(5),SIX(6),SEVEN(7),
EIGHT(8),NINE(9),TEN(10),JACK(11),QUEEN(12),KING(13);
private int code;
public int getCode() {
return code;
}
private Rank(int code) {
this.code = code;
}
public static Rank valueOf(int code) {
for (Rank rank: Rank.values()) {
if (rank.getCode()==code)
return rank;
}
throw new RuntimeException("INVALID CODE");
}
@Override public String toString() {
String s = super.toString();
return s.substring(0, 1) + s.substring(1).toLowerCase();
}
}
public enum Suit{SPADES(1),HEARTS(2),CLUBS(3),DIAMONDS(4);
private int code;
public int getCode() {
return code;
}
private Suit(int code) {
this.code = code;
}
public static Suit valueOf(int code) {
for (Suit suit: Suit.values()) {
if (suit.getCode()==code)
return suit;
}
throw new RuntimeException("INVALID CODE");
}
@Override public String toString() {
String s = super.toString();
return s.substring(0, 1) + s.substring(1).toLowerCase();
}
}
public Card(int rank,int suit) {
this.suit = Suit.valueOf(suit);
this.rank = Rank.valueOf(rank);
}
public static void setRank(Rank rank) {
Card.rank = rank;
}
public static Rank getRank() {
return rank;
}
public static void setSuit(Suit suit) {
Card.suit = suit;
}
public static Suit getSuit() {
return suit;
}
}
ここで、BlackJack と呼ばれるメイン クラスで本当にやりたいことは、新しいカードを作成し、Card で作成したコンストラクターからの int を使用してランクとスーツを割り当て、それを出力して動作を確認することだけです。理解できないこのクレイジーなエラーが発生し続けます。どんな助けでも大歓迎です!これは私の BlackJack/メイン クラスです。
package blackjack;
public class BlackJack {
public static void main(String[] args) {
Card c1 = new Card(1,1);
System.out.println(c1.rank.toString());
}
}