在数组中使用随机对象

Using Random Objects in Arrays

所以我对编程还很陌生,但我掌握了循环和数组等基础知识,现在我正在学习 classes 和对象。 我想让我的宠物 "eat" 并使用数组输出 3 个食物元素。

这是我的主要方法

Food[] f = new Food[3];
    for(int i = 0; i < 3; i++){
        f[i] = new Food();
        System.out.println("Your " + pet.type + " ate some " + food.name);
        pet.eat(food);
    }

我正在打电话给 "Food Class"

的食物
public class Food {

int nutrition;  // scale from 0 - 5 where 5 is super nutritious
String name;  // name of food

public Food(){
    Random r = new Random();
    int num = r.nextInt(6);
    if (num == 0){
        name = "rocks";
        nutrition = 0;
    } else if (num == 1){
        name = "seeds";
        nutrition = 1;
    } else if (num == 2){
        name = "chips";
        nutrition = 2;
    } else if (num == 3){
        name = "carrots";
        nutrition = 3;
    } else if (num == 4){
        name = "fish";
        nutrition = 4;
    } else if (num == 5){
        name = "steak";
        nutrition = 5;
    }
}

我的问题是当我尝试 运行 上面的循环时,它输出了 3 种相同的食物,即使我在食物 class 中指定我希望它生成一个随机食物.

示例输出 你的狗吃了一些薯条 这食物一点营养都没有。。。 你的狗吃了一些薯片 这食物一点营养都没有。。。 你的狗吃了一些薯条 这食物一点营养都没有...

提前致谢!

您的新 Food 对象存储在 f[i] 中。

f[i] = new Food();

但您的输出来自 food.name。

System.out.println("Your " + pet.type + " ate some " + food.name);

您需要打印 f[i].name.