2010-05-23 39 views
5

我想下面的代碼包含其中讀取OU TMA文檔中說明遊戲:java.util.Random的零參數查詢

在構造函數中編寫代碼來隨機的一個新的實例分配給跑了你應使用Random類的零參數構造函數創建

此代碼是否工作?

Random ran = new Random(0) ; 

我是一個相對的新手Java和我完全不明白什麼意思的指令

+2

FWIW,*你的代碼做的是創建一個* seed *爲0的新的'Random'對象。種子是隨機數生成器的一個重要屬性;這意味着你可以每次得到相同的隨機數(當你從同一個種子開始時)。 – 2010-05-23 07:24:29

+2

我想這是對我們所有人的提醒,「無爭論」或「無參數」比「零參數」更好(即不太模糊)的術語。 – 2010-05-23 08:16:49

回答

6

不,這不會工作。零參數的構造函數是一個構造函數沒有參數:

Random ran = new Random(); 

是要走的路。

的兩個構造函數的差在API文檔被很好地描述:

Random()
創建一個新的隨機數發生器。此構造函數將隨機數生成器的種子設置爲非常可能與此構造函數的任何其他調用不同的值。

Random(long seed)
創建使用單個長種子新的隨機數發生器:public Random(long seed) { setSeed(seed); }

也就是說,利用一個參數創建一個隨機的對象,將返回的隨機數的相同的順序的程序的每次運行,而通過零參數構造函數創建的對象(或「無參數構造函數」)將盡最大努力返回不同的序列。