Java.util.Random零参数查询

5

我正在尝试编写一款游戏,遵循OU TMA文档中的说明:

在构造函数中,编写代码将使用Random类的零参数构造函数创建的新实例分配给ran

这段代码会起作用吗?

Random ran = new Random(0) ;

我是一个相对新手的Java程序员,不太理解这个指令具体是什么意思。


2
就此而言,你的代码创建了一个种子为0的新“Random”对象。种子是随机数生成器的重要属性;这意味着当你从相同的种子开始时,可以获得相同的随机数。 - Noon Silk
2
我想这是对我们所有人的提醒,即“无参数”或“无参”比“零参数”更好(即更少歧义)的术语。 - Stephen C
1个回答

6
不行,那样做不行。零参数构造函数是一个不带任何参数的构造函数:
Random ran = new Random();

这是一种可行的方法。

这两个构造函数的区别在API文档中有很好的描述:

Random()
创建一个新的随机数生成器。此构造函数将随机数生成器的种子设置为一个非常可能与此构造函数的任何其他调用不同的值。

Random(long seed)
使用单个长种子创建一个新的随机数生成器:public Random(long seed) { setSeed(seed); }

也就是说,通过参数创建的Random对象,每次运行程序都会返回相同的随机数序列,而通过零参数构造函数(或“无参数构造函数”)创建的对象将尽力返回不同的序列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接