我开始创建一个Hangman游戏。我想要一个主类和一个方法类。我想得到一个秘密的词,但我收到一个错误:
非静态方法
getWord()
无法从静态上下文中引用。
也许我收到此错误,因为没有创建对象?这里有什么问题,我该如何解决这个问题?
PS:也许用enum实现它可能会更好,但我想以这种方式开始。public class HangmanMain {
public static void main(String[] args) {
String secretWord; /* chosen secret word*/
secretWord = HangmanUtil.getWord();
System.out.println("");
}
}
public class HangmanUtil {
private String[] wordBank = {"pool","ice", "america", "hook", "book", "glass" , "hint", "giraffe"," elephant", "ocean","market"};
String guess;
private int bodyPartsLeft;
String getWord(){
int len = wordBank.length;
int rand = (int)(Math.random() * (len + 1));
return wordBank[rand];
}
}
答案 0 :(得分:0)
你自己回答:
也许我收到此错误,因为没有创建对象?
创建HangmanUtil
的新实例或将HangmanUtil.getWord()
方法设为静态。
编辑:考虑到它是一个实用工具类,我相信第二个选项更好:make HangmanUtil
是一个静态类的静态类。
答案 1 :(得分:0)
除非方法是静态的,否则无法通过ClassName.methodName()
调用方法。
如果要调用非静态方法,则需要一个实例。 E.g。
HangmanUtil hu = new HangmanUtil();
secretWord = hu.getWord();
如果您不想创建实例,则需要将您的方法标记为static
,并且它引用的任何其他方法或字段也必须是静态的。