所以我在Java編碼21點和我存儲在枚舉通過枚舉循環作爲參數
public enum Suit
{
spades, hearts, clubs, diamonds
}
public enum Rank
{
two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace
}
我的西服,等級值我有一個甲板類保持「卡」的堆棧。 牌包含西裝和等級領域。
public class Card
{
static Suit suit;
static Rank rank;
Card(Suit suit, Rank rank)
{
this.suit = suit;
this.rank = rank;
}
public String toString()
{
return rank + " of " + suit;
}
//getters and setters ommitted
}
在橋面的構造應通過各每種花色和等級,並通過這些作爲參數來創建的52張撲克牌進行迭代,但它似乎被卡住每個最後的價值觀和我結束了與52''俱樂部'。我不明白爲什麼,因爲西裝和級別似乎打印正確,它似乎只是當他們作爲參數傳遞,以添加(),他們行爲不端。
public class Deck
{
static Stack<Card> d = new Stack<Card>();
Deck()
{
if (!d.isEmpty())
{
clear(); //Empties the stack if constructor is called again
}
for (Suit suit : Suit.values())
{
for (Rank rank : Rank.values())
{
//System.out.println(suit + " " + rank);
//This seems to print the right values
add(new Card(suit, rank)); //These are stuck on 'clubs' and 'ace'
}
}
System.out.println(d);
shuffle(); //Method which shuffles the deck
}
public static void add(Card c)
{
d.addElement(c);
}
//shuffle(), clear() and other methods omitted
}
整個項目上可以看到github,有沒有什麼幫助。
確保您瞭解什麼是靜態變量。你似乎誤解了他們(這是你問題的原因)。 – goat