在不同类Java的方法中使用变量

时间:2015-02-12 04:29:35

标签: java

所以在我的第一堂课中我有

     final int[] europeanroulettegame = {0,32,15,19,4,21,2,25,17,34,6,27,13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9,22,18,29,7,28,12,35,3,26};


// random number generated from the roulette

 public static int getRandom(int[] europeanroulette){

     int winningnumber = new Random().nextInt(europeanroulette.length);

     return winningnumber;
 }

在另一堂课中我有

    public boolean equals(){

    for (int i = 0; i < anyplayer.length; i++) {
        if (winningnumber != anyplayer[i]) {
            return false;
        } 
        else {
            return true;
        }
    }

我想知道为什么这似乎不起作用?我正在尝试使用头等舱中的获胜号码,但它似乎不起作用。

我还想在我的驱动程序中添加它,我有这个

    // Dealer announces the winning number (randomly generated)

           int winningnumber = europeanroulette.getRandom(europeanroulettegame); // the name of the first class is europeanroulette

我想知道为我的驱动程序生成的获胜数是否与equals方法相同?

如果没有,我如何确保两个类使用相同的获胜号码,而不是两次产生一个(使它们不同)?

3 个答案:

答案 0 :(得分:1)

您的getRandom方法不会从列表中返回随机数。它返回一个介于0和列表长度之间的数字。如果您想要列表中的随机数,请执行以下操作:

return europeanroulette[(int)(Math.random() * europeanroulette.length)];

如果您希望从头等舱获得第二名的中奖号码。你需要调用方法:

int winningnumber = europeanroulette.getRandom(europeanroulette.europeanroulettegame);

您需要执行europeanroulette.europeanroulettegame而不是europeanroulettegame的原因是您在另一个类中引用变量。

如果您想在多个地方获得相同的中奖号码,那么您应该将从getRandom()获得的第一个中奖号码保存为全局变量。

或者只使用这个类:

class EuropeanRouletteGame{
    static int number;
    static final int range = 37;
    static void newNumber(){
        number = (int)(Math.random() * ranage);
    }
    static int getNumber(){
        return number;
    }
}

如果希望生成介于0和范围之间的新随机数,请使用newNumber方法。当您拨打getNumber时,您将始终获得当前号码。 你应该在第一次调用getNUmber之前运行newNumber,因为这个数字最初为零。

班级名称应以大写字母开头。

答案 1 :(得分:0)

您不需要在开头初始化数组。你实际上是在创建一个包含37个元素(0-36)的数组,并随机返回一个数字。如果需要[0-36]范围内的数字,可以使用

在运行时进行
(int)(new Random().nextInt(37))

Random.nextInt(N)生成0(包括)和N(不包括)之间的分数。因此,将返回值转换为整数将为您提供[0-(N-1)]的范围,N为整数。

答案 2 :(得分:0)

可能你应该在这里专门使用静态

import java.util.Random;

public class random {

    static final int[] europeanroulettegame = {0,32,15,19,4,21,2,25,17,34,6,27,13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9,22,18,29,7,28,12,35,3,26};


// random number generated from the roulette

 public static int getRandom(int[] europeanroulette){   

     int winningnumber = new Random().nextInt(europeanroulette.length);

     return winningnumber;
 }

}



public class randomuse {

    public static boolean eql(int[] anyplayer){
        boolean present = false;

        for (int i = 0; i < anyplayer.length; i++) {

            if (new random().getRandom(anyplayer) != anyplayer[i]) {
                present=false;  } 
            else {  present= true; }
        }

            return present;
        }

    public static void main(String[] args) {

        System.out.println(eql(random.europeanroulettegame));
    }

}