我对编程很新,并且不太了解。我一直在尝试构建一个简单的游戏,用户和计算机通过掷骰子来赢得积分。我的方法发布在下面。计算机每回合只能赚20点。
我的问题是我需要在调用和完成方法后记住变量computerTotal的值。我想确保无论何时完成computerTurn方法,我都可以在该方法之外使用该计算变量computerTotal。
我尝试在.java文件类中创建一个新的int(但在方法之外),然后在方法中使用该int来保存值,但是我收到有关需要静态的整数的错误?
这对我来说非常困惑。任何人都可以帮助我吗?
public static void computerTurn() {
System.out.println("Passed to Computer.");
Die computerDie1, computerDie2;
int computerRound, computerTotal;
computerRound = 0;
computerTotal = 0;
while (computerTotal < 21){
computerDie1 = new Die();
computerDie2 = new Die();
computerDie1.roll();
computerDie2.roll();
System.out.println("\n" + "CPU Die One: " + computerDie1 + ", CPU Die Two: " + computerDie2 + "\n");
computerRound = computerDie1.getFaceValue() + computerDie2.getFaceValue();
int cpuDie1Value;
int cpuDie2Value;
cpuDie1Value = computerDie1.getFaceValue();
cpuDie2Value = computerDie2.getFaceValue();
System.out.println ("Points rolled this round for the Computer: " + computerRound);
computerTotal = computerTotal + computerRound;
System.out.println ("Total points for the Computer: " + computerTotal + "\n");
}
答案 0 :(得分:0)
在方法中创建的任何变量都是“局部变量”,这意味着它们不能在方法之外使用。将静态变量放在方法之外以创建可在任何地方使用的“全局变量”。
答案 1 :(得分:0)
向您的班级添加方法
public static int getComputerTotal() { return ComputerTotal;}
然后你可以通过做类似的事情来获得课外的价值:
ComputerTurn();
ComputerTurn.getComputerTotal();
答案 2 :(得分:0)
将变量置于方法之外是正确的,但由于此方法为static
(意味着它无法访问依赖于对象实例的变量),因此它只能访问静态变量。使用以下方法在方法之外的类中声明computerTotal
:
private static int computerTotal;
您应该对面向对象的编程以及static
在Java中的含义进行一些研究。
答案 3 :(得分:0)
将computerTotal声明为类的成员变量,以便即使在函数外部也可以使用它的值。
class MyClass{
private int computerTotal ;
public void function myFunction()
{
........
......... // your calculations
computerTotal = computerTotal + computerRound;
}
public int getComputerTotal(){return computerTotal ;}
}
答案 4 :(得分:0)
您必须在任何方法之外声明computertotal以保留它们。像这样:
public class name {
int computertotal = 0; //v=can just uuse int computertotal;
public void method() {
while(computertotal < 20) {
computertotal += 1;
}
}
}
现在变量被保存了!
答案 5 :(得分:0)
您可能需要添加一些setter和getter来从另一个类获取该int。
class NewClass {
private int yourInt = 1;
}
它告诉你把它变成一个静态变量,因为你可能会在像
这样的语句中调用它NewClass.yourInt;
,静态变量是与类关联的变量,而不是该类的对象。
Setter和getter是允许您从另一个类检索或设置私有值的方法。您可能希望将它们添加到声明int的NewClass中。塞特斯和吸气者看起来像这样。
设置器:
public void setYourInt(int newInt) {
this.yourInt = newInt;
}
吸气剂:
public int getYourInt() {
return this.yourInt;
}