应该是一个简单的修复,但我想知道如何使用一个对象,是在主创建。我试着说人类h;在main(或任何其他方法)之外,所以我可以在其他方法中调用它,但是因为我使用的是静态方法,所以不能使用h。现在有了这段代码,java告诉我不能找到h(在humanroll方法中)
import java.util.Scanner;
class Main
{
// static Human h;
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
Computer c = new Computer();
Human h = new Human();
System.out.println("Let's play PIG");
System.out.println("What is your name");
String name = scan.nextLine();
System.out.println("Hello" + " " + name + " " + "you can go first");
startGame(h, name);
}
public static void startGame(Human h, String name)
{
Scanner scan = new Scanner(System.in);
System.out.println("Press r to start your roll");
String rresponse = scan.nextLine();
if(!rresponse.equalsIgnoreCase("R"))
{
System.out.println("Try again");
startGame(h, name);
}
if(rresponse.equalsIgnoreCase("R"))
{
System.out.println("You pressed r, lets roll");
humanRoll(h, name);
}
}
public static void humanRoll(Human h, String name)
{
if(h.getRollNumh()==1)
{
System.out.println(name + " " + "you got a " + h.getRollNumh());
System.out.println("You got a score of" + h.getHumanTurnScore() + "this turn");
System.out.println("Here is your current overall score" + h.getHumanOverallScore());
System.out.println("Your rolled a one, now its the Computers' turn");
switchHuman();
}
}
}
如果您需要查看human类来提供上下文,我可以快速响应并添加它,但它只是示例变量、默认构造函数、重载构造函数、访问器方法和mutator方法。
3条答案
按热度按时间6ljaweal1#
如果希望human h是静态的(程序中只有一个),那么可以这样定义它:
5fjcxozz2#
在java中,函数中声明的变量只能在函数中使用。我们说变量的作用域只在函数中。
修正:可以将变量h作为参数传递给其他函数。
vjhs03f73#
您可以将human作为方法参数传递给startgame,humanroll将它们定义为
然后,主要是调用
startGame(h)
.看看这是否有效。。。