如何为对象分配随机值?

时间:2018-11-14 21:03:53

标签: java random

我正在创建一个纸牌游戏,要求纸牌具有随机属性。所以我创建了一个卡片类:

public static class hero{
static String name;
static int strength;
static int intellect;
static int flight;
static int tech;
}

然后,用户输入纸牌数,并创建纸牌(对象)数组。

hero [] cards = new hero[cardNumber];
           for(int i=0;i<cardNumber;i++){ cards[i]=new hero();}

但是,当我尝试使用for循环为卡分配随机值时,每个卡的属性最终都具有相同的值,这是我使用的代码:

for(int i=0; i<cards.length; ++i)
           {
           cards[i].strength = rand.nextInt(25) + 1;
           cards[i].intellect = rand.nextInt(25) + 1;
           cards[i].flight = rand.nextInt(25) + 1;
           cards[i].tech = rand.nextInt(25) + 1;
           }

例如。

cards[1].flight 

将返回7

cards[2].flight 

将返回7

我很确定我错了,我们非常感谢您的帮助和指导

1 个答案:

答案 0 :(得分:0)

在英雄类中声明变量时,尝试删除static关键字。 因此,而不是

static String name;
...
static int flight;

String name;
...
int flight;

使它们static可以使变量不是特定于类的单个实例,而是特定于整个类。可以在不实例化类对象的情况下调用静态变量。

例如,使用您当前的代码

hero.flight

还将返回7。通过删除static标识符,您将可以使数组中每个对象都具有特定的每个变量。