为什么我需要将随机修改器更改为静态?

时间:2014-01-09 17:23:57

标签: java class random

我正在教自己Java并且正在创建一个简单的游戏。我得到了整个工作,这是很棒的..我一路上学到了很多东西。我决定将我的代码分成不同的类,这样我可以学到更多东西,清理cose,也不必重复代码!

在我的主要方法中,我有一个随机的实例,例如

Random rand = new Random();

这在调用

时工作得很好
dragonMoves[rand.nextInt(5)]

在我的主要方法中。

将代码移到新课程后,我需要更改

Random rand = new Random();

是静态的。这修复了所有错误,但我只是想了解它为什么会这样做?如果我能提供更多信息以获得更多帮助,请告诉我们!

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要了解静态上下文是什么。查看this questionthis tutorial

答案 1 :(得分:1)

您可能在instance上下文中使用该static成员。

您不能在静态上下文中使用非static成员实例。这就是编译器抱怨的。

您需要在该静态上下文中创建新的instance,或者成员应为static

原因是静态方法或成员附加到类而不是instance

原因是您可以在没有实例的情况下调用静态方法,因此不应在该上下文中使用instance成员。

我推荐这个关于Understanding Instance and Class Members

的oracle教程