我正在教自己Java并且正在创建一个简单的游戏。我得到了整个工作,这是很棒的..我一路上学到了很多东西。我决定将我的代码分成不同的类,这样我可以学到更多东西,清理cose,也不必重复代码!
在我的主要方法中,我有一个随机的实例,例如
Random rand = new Random();
这在调用
时工作得很好dragonMoves[rand.nextInt(5)]
在我的主要方法中。
将代码移到新课程后,我需要更改
Random rand = new Random();
是静态的。这修复了所有错误,但我只是想了解它为什么会这样做?如果我能提供更多信息以获得更多帮助,请告诉我们!
谢谢!
答案 0 :(得分:2)
您需要了解静态上下文是什么。查看this question和this tutorial。
答案 1 :(得分:1)
您可能在instance
上下文中使用该static
成员。
您不能在静态上下文中使用非static
成员实例。这就是编译器抱怨的。
您需要在该静态上下文中创建新的instance
,或者成员应为static
。
原因是静态方法或成员附加到类而不是instance
。
原因是您可以在没有实例的情况下调用静态方法,因此不应在该上下文中使用instance
成员。