【发布时间】:2019-06-22 03:37:35
【问题描述】:
所以我是 OOP 的新手,目前在使用其他方法的函数时遇到问题。下面的类是纸牌游戏的主要类。在这里,它通过从 Game 类创建一个对象来创建一副纸牌。然后它使用创建的牌组开始游戏,并打印牌组的大小。
public class Run {
public static void main(String[] args) {
Game game;
System.out.println("Welcome!");
play = true;
while (play) {
game = new Game(3); //Create deck of card based on number of ranks given
game.play(); //Starts the game with deck of card
}
}
下面的类是游戏类。当游戏开始时,它应该打印创建的牌组的大小。
public class Game {
public Game(int ranks)
{
Deck Main = new Deck(ranks);
}
public static void play()
{
System.out.println(Main.size()); //Where the error occurs
}
下面的类是 Deck 类,它在其中实际创建了牌组,并有一个返回牌组大小的方法。
public class Deck {
private ArrayList<Card> cards;
public Deck(int range) {
cards = new ArrayList<Card>();
for (int i=1; i<=range; i++)
{
Card card = new Card(1, i);
Card card2 = new Card(2, i);
Card card3 = new Card(3, i);
Card card4 = new Card(4, i);
cards.add(card);
cards.add(card2);
cards.add(card3);
cards.add(card4);
}
}
public int size()
{
int num=cards.size();
return num;
}
最后一个类是 Card 类。
public class Card {
private int rank;
private int suit;
public Card(int s, int r)
{
suit=s;
rank=r;
}
public int getSuit()
{
return suit;
}
public int getRank()
{
return rank;
}
由于我缺乏理解,这一定是一个明显的错误,所以任何人都可以说明如何解决它?
【问题讨论】:
-
你提到了一个错误,但不要说错误是什么......虽然我们可以通过阅读你的代码来弄清楚,但你应该在你的问题中包含所有这些细节。
-
不相关:Main 是一个变量,所以它应该以小写开头。当你不断调用 play 方法时,你真正的 main 方法将永远循环,但你永远不会改变控制封闭循环的局部变量。
-
@GhostCat 是的,因为游戏还没有完成,所以它应该永远运行。我可能应该编辑那部分然后发布它哈哈。
-
@Zephyr 我很抱歉,我会确保下次这样做。