Java 如何调用和执行方法
我有一个问题可能是非常基本的,但我似乎无法在堆栈上找到它(我确实找到了非常复杂的),所以如果它已经在某个地方,我非常抱歉 我正在用java编写一个纸牌游戏,我想将绘制新纸牌的代码片段移动到一个单独的方法中,这样我就可以随时调用它,而不是在需要时让同一段代码反复出现 唯一的问题是我不知道该使用什么类型的方法,也不知道如何调用它,因为它不会返回任何东西,只需要执行一堆代码 如果这有助于说明我的目标,那么下面是我画一张卡片的代码片段Java 如何调用和执行方法,java,methods,playing-cards,Java,Methods,Playing Cards,我有一个问题可能是非常基本的,但我似乎无法在堆栈上找到它(我确实找到了非常复杂的),所以如果它已经在某个地方,我非常抱歉 我正在用java编写一个纸牌游戏,我想将绘制新纸牌的代码片段移动到一个单独的方法中,这样我就可以随时调用它,而不是在需要时让同一段代码反复出现 唯一的问题是我不知道该使用什么类型的方法,也不知道如何调用它,因为它不会返回任何东西,只需要执行一堆代码 如果这有助于说明我的目标,那么下面是我画一张卡片的代码片段 if (event.getSource() == hit &
if (event.getSource() == hit && endOfRound == false) {
Continue = true;
while (Continue == true) //If the random number has been drawn before, loop the random number generator again
{
cardID = (int) RandomNumber.GetRandomNumber(52);
if (cardsLeft[cardID] == true) //If a new card is drawn, continue normally
{
Continue = false; //Stop the loop that draws a new card
cardsLeft[cardID] = false; //save that the card was drawn
stay.setBackground(Color.green);
plyrSum += BlackJack.value(cardID); //add value to sum
plyrSumLabel.setText("Your sum: " + plyrSum); //display new sum
cardLabel[plyrCardCounter].setIcon(cardImage[cardID]); //Display card
plyrCardCounter++;
if (cardID >= 48) //record how many aces are in the hand so the program knows how many times it can reduce the sum.
plyrAceCounter++;
while (plyrSum > 21 && plyrAceCounter > 0) //If bust, reduce the value of an ace by 10 (from 11 to 1).
{
plyrSum -= 10;
plyrSumLabel.setText("Your sum: " + plyrSum);
plyrAceCounter--;
}
if (plyrSum > 21) //Automatically end the round if someone busts (player)
{
stay.doClick();
}
}
}
}
声明一个返回void的方法drawCard()。现在复制if内的块并将其粘贴到方法内。 然后重写if部分:
非常感谢,但是这种方法叫什么?公共静态无效?因为这似乎不起作用。(错误消息:令牌“void”上的语法错误,@expected)我做错了什么?这太奇怪了,因为当我检查它时,我确信我已经做得很好,但不知何故,我收到另一条错误消息,说“此行有多个标记-抽卡无法解析为类型-令牌“void”上的语法错误,新的预期”Nvm我解决了它,我只是把它粘贴到了错误的地方。一般来说,将一个复杂的过程分解成一系列更小的、独立的、逻辑上不同的步骤总是一个好主意。在像Java这样的面向对象语言中,这应该是对象模型的自然结果。我注意到您正在编写一个纸牌游戏,因此一个自然域对象似乎是
card
,但您的项目似乎没有面向对象的纸牌抽象。
if (event.getSource() == hit && endOfRound == false) drawCard();