[英]Printing Objects in Stack [Java]
因此,该项目是制作一副纸牌,创建洗牌和发牌并进行比较的方法。
甚至没有走那么远,我在显示堆栈的内容时遇到了问题。
我得到了输出randomdeck.Card@10ed7f5c
但是每张卡都有不同的地址。
我进行了大小检查,堆栈中有52个对象,这意味着我将其填满,并且它确实存在。
查看我的Card构造函数,我知道我实际上并没有使用cSuit / cRank String数组填充它。 我原来的代码有它,所以我要用整数填充它,然后有一个方法读取这些整数并将这些整数放入显示String的String数组中。
但是我不得不部分废弃它,因为它只是一个数组,而不是堆栈。
如果有一种方法可以直接将String数组传递到Card中,那么将其推入Deck的方式就可以将其弹出并立即看到非常棒的内容。 但是我担心这是不可能的,而且我无法掌握有关堆栈/队列的一些基本知识。
我希望我的旧代码完全完整无缺,以显示以前的操作,但现在我认为这并不重要。
这是我当前的代码。
package randomdeck;
//import java.util.Arrays;
import java.util.Stack;
public class Card
{
int Suit;
int Rank;
public Card(int Rank, int Suit)
{
this.Suit=Suit;
this.Rank=Rank;
}
public String[] cSuit = new String[4];
{
cSuit[0]="Hearts";
cSuit[1]="Spades";
cSuit[2]="Diamonds";
cSuit[3]="Clubs";
}
public String[] cRank = new String[13];
{
cRank[0]="Ace";
cRank[1]="2";
cRank[2]="3";
cRank[3]="4";
cRank[4]="5";
cRank[5]="6";
cRank[6]="7";
cRank[7]="8";
cRank[8]="9";
cRank[9]="10";
cRank[10]="Jack";
cRank[11]="Queen";
cRank[12]="King";
}
void displayCard()
{
//System.out.println(cRank + " Of " + cSuit);
System.out.println(cRank[Rank] + " of " + cSuit[Suit]);
}
}
这是甲板课
package randomdeck;
//import java.util.Arrays;
import java.util.Stack;
public class Deck
{
int cardNum=0;
//static int DeckSize=52;
Stack<Card> Deck = new Stack<Card>();
public Deck()
{
for(int rank=0; rank<13; rank++)
{
for(int suit=0; suit<4; suit++)
{
Deck.push(new Card(rank,suit));
System.out.println(Deck.peek());
//System.out.println(Deck.size());
//Deck[cardNum] = new Card(rank,suit);
//cardNum++;
}
}
}
public void Peek()
{
System.out.println(Deck.peek());
}
public void Size()
{
System.out.println(Deck.size());
}
}
这是最后一堂课
package randomdeck;
//import java.util.Arrays;
import java.util.Stack;
public class RandomDeck {
public static void main(String[] args)
{
Deck testDeck= new Deck();
testDeck.Size();
}
}
我想您想像这样向Card
类添加toString()
方法,
public String toString() {
return cRank[Rank] + " of " + cSuit[Suit];
}
另外,我觉得你应该重新命名Rank
和Suit
,以rank
和suit
分别。
最后,更惯用的String数组初始化是
public String[] cSuit = new String[] { "Hearts",
"Spades", "Diamonds", "Clubs" };
public String[] cRank = new String[] { "Ace", "2",
"3", "4", "5", "6", "7", "8", "9", "10", "Jack",
"Queen", "King" };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.