mainクラス名.インスタンス名.nextInt()
のようにするのであれば、そのインスタンスをstaticに指定する必要があります。
java
1import java.util.Random;
2
3class Main {
4 //staticフィールドでrandomを宣言
5 public static Random random;
6
7 public static void main(String[] args){
8 for(i = 0; i < 10; i++){
9 //シード設定したRandomをstaticフィールドに設定
10 random = new Random(10);
11 int i = new OtherClass().method();
12 }
13 }
14}
15
16class OtherClass {
17
18 public int method(){
19 //Mainクラスのstatic変数を参照して乱数を発生
20 return Main.random.nextInt();
21 }
22
23}
そうせずに使い回すなら、他クラスのメソッドを起動するときにRandomインスタンスを渡す必要があります。
java
1import java.util.Random;
2
3class Main {
4
5 public static void main(String[] args){
6 for(i = 0; i < 10; i++){
7 //シード設定したRandomを生成
8 Random random = new Random(10);
9 int i = new OtherClass().method(random);
10 }
11 }
12}
13
14class OtherClass {
15
16 //Randomインスタンスを受け取り、そのインスタンスから乱数を生成させる
17 public int method(Random random){
18 return random.nextInt();
19 }
20
21}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/30 06:37
2015/12/30 08:20
2015/12/31 06:29