gpt4 book ai didi

java - 调用无效方法

转载 作者:行者123 更新时间:2023-11-29 09:38:35 25 4
gpt4 key购买 nike

我需要在调用另一个方法之前调用一个 void 方法。

我有这个方法

    public void shuffle() {
various = new Random();

currentCard = 0;
currentTotal1 = 0;
currentTotal2 = 0;

for (int first = 0; first < deckOfCards.length; first++) {
int second = various.nextInt(number_cards);

Card temp = deckOfCards[first];
deckOfCards[first] = deckOfCards[second];
deckOfCards[second] = temp;
}
}

在另一个类(class)我有:

public class GameRules {
final deck myDeckOfCards = new deck();
myDeckOfCards.shuffle(); //error here

// first
public ImageIcon GameRules1() {
return myDeckOfCards.giveCardPlayer1().getImage();
}

基本问题是我需要在出牌前洗牌。没有洗牌方法,卡片的顺序是连续的

有什么想法吗?如果我将方法放在 public ImageIcon GameRules1() 中不会出错,但我需要在游戏前洗牌,而不是在每次给牌方法之前洗牌。

谢谢

最佳答案

您应该将该调用放在类的构造函数中:

public GameRules() {
myDeckOfCards.shuffle();
}

构造函数是您为对象执行初始化任务的地方。

此外,您真的不应该使用返回 ImageIcon 的称为 GameRules() 的方法。您应该将该方法重命名为 getImage 或类似名称。然后,当您使用构造函数创建 GameRules 并对其调用 getImage 时,牌组将被洗牌。

例子:

GameRules gr = new GameRules(); // deck gets shuffled in constructor call
JLabel test2 = new JLabel(gr.getImage());

查看 Java 教程以获得良好的体验 tutorial on writing constructors for your classes.

关于java - 调用无效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com