gpt4 book ai didi

java - ArrayList添加方法编译但不起作用

转载 作者:行者123 更新时间:2023-12-02 02:58:32 25 4
gpt4 key购买 nike

我一直在查看代码,但找不到任何看起来不对劲的东西。我是编程新手,所以也许我错过了一些明显的东西,但任何帮助将不胜感激。我正在做的作业是制作一副 52 张牌,然后设计更改牌组的方法,这些牌正在创建但没有添加到 ArrayList 中。我的套牌类代码是:

import java.util.*;
public class FiftyTwoCardDeck
{
List<Card> totalDeck = new ArrayList<>();

private int deckSize = totalDeck.size();

public FiftyTwoCardDeck()
{
for(int j=0;j<4;j++) {
for(int k=0;k<13;k++) {
String s;
String c;

switch(j) {
case 0:
s = "Spades";
break;

case 1:
s = "Diamonds";
break;

case 2:
s = "Clubs";
break;

case 3:
s = "Hearts";
break;
}

switch(k) {
case 0:
c = "Ace";
break;

case 10:
c = "Jack";
break;

case 11:
c = "Queen";
break;

case 12:
c = "King";
break;

default:
c = ""+(k+1);
break;
}

Card card = new Card(s, c);
totalDeck.add(card);
}
}
}

public int cardAmount()
{
return deckSize;
}
}

测试器类只是创建一个对象:

public class FiftyTwoCardDeckTester
{
public static void main(String args[])
{
FiftyTwoCardDeck deck = new FiftyTwoCardDeck();
}
}

为牌组制作对象的卡牌类是:

import java.util.*;
public class Card
{
public Card(String st, String ct)
{
suit = st;
count = ct;
}

public String getSuit()
{
return suit;
}

public String getCount()
{
return count;
}

public String suit;
public String count;
}

最佳答案

private int deckSize = totalDeck.size();

public int cardAmount()
{
return deckSize;
}

当创建 FiftyTwoCardDeck 对象时,您正在初始化 deckSize。在构造函数运行之前它被设置为 0 并且永远不会更新。当卡片添加到牌组时,您需要更新它。

或者,删除变量并让 cardAmount() 在每次调用时询问列表有多大。

public int cardAmount()
{
return totalDeck.size();
}

关于java - ArrayList添加方法编译但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720320/

25 4 0