【发布时间】:2014-06-03 14:24:24
【问题描述】:
我正在尝试制作纸牌游戏,并准备好我的纸牌类和套牌类,它可以编译,但是当我尝试运行套牌的方法 makeDeckFull 时,我得到输出:invalidnumberinvalidnumber...
当我使用 showDeck 方法时,我会看到这个而不是“红心”,1 Cards@597f13c5(我不知道是什么意思,也不知道怎么解决)
任何帮助将不胜感激:代码如下。
甲板等级:
import java.util.ArrayList;
public class Deck
{
private ArrayList<Cards> deck;
private int index;
public Deck()
{
deck = new ArrayList<Cards>();
}
public void makeDeckFull()
{
Cards h1 = new Cards("Hearts", 1);
Cards h2 = new Cards("Hearts", 2);
Cards h3 = new Cards("Hearts", 3);
deck.add(h1);
index ++;
deck.add(h2);
index ++;
deck.add(h3);
index ++;
//Rest of these is left out to conserve space
}
public void showDeck()
{
System.out.println(deck);
}
卡类:
public class Cards
{
private String HEARTS = "Hearts";
private String CLUBS = "Clubs";
private String DIAMONDS = "Diamonds";
private String SPADES = "Spades";
public int number;
public String suit;
public Cards()
{
suit = "unknown suit";
number = 0;
}
public Cards(String suit, int number)
{
setSuit(suit);
setNumber(number);
}
public void setCard(String suit, int number2)
{
setSuit(suit);
setNumber(number2);
}
public void setSuit(String newSuit)
{
if(
(newSuit.equalsIgnoreCase(HEARTS)) ||
(newSuit.equalsIgnoreCase(DIAMONDS)) ||
(newSuit.equalsIgnoreCase(CLUBS)) ||
(newSuit.equalsIgnoreCase(SPADES)))
{
suit = newSuit;
}
else
{
newSuit = "invalid";
System.out.print("Invalid");
}
}
public int getNumber()
{
return number;
}
public String getSuit()
{
return suit;
}
public void setNumber(int newNumber)
{
if(newNumber >0 && newNumber <=10)
{
number = newNumber;
}
else
{
number = 0;
System.out.print("invalid number");
}
}
}
【问题讨论】:
-
我没有看到
setDeck方法。此外,Cards@597f13c5表示您尚未覆盖 Cards 类中的toString方法。 -
或者
print方法。 -
不好意思,我不清楚,我马上编辑,makeDeckFull 方法和 showDeck,再次抱歉。
-
你还能回复吗?