【发布时间】:2023-03-11 12:32:02
【问题描述】:
我有一个多部分程序(2 个 java 文件),它应该做两件事:
制作一副纸牌(包括洗牌、发牌、重置)
创建一个扑克游戏(制作两副牌,其他东西……)
由于这个未处理的异常错误,我遇到了一个障碍,我什至不确定它来自哪里。错误如下图,源代码如下。
。
扑克牌异常类
class PlayingCardException extends Exception {
/* Constructor to create a PlayingCardException object */
PlayingCardException (){
super ();
}
PlayingCardException ( String reason ){
super ( reason );
}
}
.
甲板课 /** class Decks 表示:n 副扑克牌 *使用类卡构建n * 52张扑克牌! * * 不要添加新的数据字段! * 不要修改任何方法 * 您可以添加私有方法 */
class Decks {
/* this is used to keep track of original n*52 cards */
private List<Card> originalDecks;
/* this starts with n*52 cards deck from original deck */
/* it is used to keep track of remaining cards to deal */
/* see reset(): it resets dealDecks to a full deck */
private List<Card> dealDecks;
/* number of decks in this object */
private int numberDecks;
/**
* Constructor: Creates n decks (52 cards each deck) of playing cards in
* originalDecks and copy them to dealDecks.
* initialize numberDecks=n
* Note: You need to catch PlayingCardException from Card constructor
* Use ArrayList for both originalDecks & dealDecks
* @throws PlayingCardException
*/
public Decks(int n) throws PlayingCardException
{
// implement this method!
this.originalDecks = new ArrayList<Card>();
this.dealDecks = new ArrayList<Card>();
int i, j, k;
numberDecks = n;
for (k=0;k<n;k++){
for (i=1;i<14;i++)
{
for(j=0;j<4;j++)
{
Card orcard = new Card(i,j);
originalDecks.add(orcard);
dealDecks.add(orcard);
}
}
}
}
}
【问题讨论】:
-
你在处理 main() 中的异常吗?可以显示主要代码吗?
-
阅读java.dzone.com/articles/business-logic-domain-objects。从设置值的工厂类构造对象是一种常见模式。 DeckFactory 包含您在工厂中使用卡片填充 Deck 的逻辑。当你想要一个新的甲板时,调用 DeckFactory.createNewDeck(int n);
标签: java exception-handling unhandled-exception poker playing-cards