Java 如何在数组循环中添加类的多个实例?

Java 如何在数组循环中添加类的多个实例?,java,Java,主类是Zoo,Animal类通过从每个不同的动物(其他类)调用pinStick方法来执行多态性 在zoo数组循环中,int r的值由Math.random决定,每次为1或0,导致尖叫或咆哮,具体取决于调用的动物类 我的问题是,如何在每次调用鼠标或狮子时(在if语句中)包含要打印的类Monkey的实例 目的是添加monkey类的新实例,以便在结果打印输出中显示“OoOoAhAh”以及“Squeak”和“Roar” public class Zoo { private Animal[] anima

主类是Zoo,Animal类通过从每个不同的动物(其他类)调用pinStick方法来执行多态性

在zoo数组循环中,int r的值由Math.random决定,每次为1或0,导致尖叫或咆哮,具体取决于调用的动物类

我的问题是,如何在每次调用鼠标或狮子时(在if语句中)包含要打印的类Monkey的实例

目的是添加monkey类的新实例,以便在结果打印输出中显示“OoOoAhAh”以及“Squeak”和“Roar”

public class Zoo {

private Animal[] animals;

public Zoo() {
    animals = new Animal[10];
}

public void talkAnimals() {
    int r;
    for (int i = 0; i < 10; i++) {

        r = (int) Math.round(Math.random());
        if (r == 0) {
            animals[i] = new Mouse();


        } else{
            animals[i] = new Lion();

        }

       }

    for (int i = 0; i < 10; i++) {

        animals[i].pinStick();

    }
}
public static void main(String[] args) {
    // TODO code application logic here
    new Zoo().talkAnimals();
}
}

}

}

}

目的是添加monkey类的新实例,以便在结果打印输出中显示“OoOoAhAh”以及“Squeak”和“Roar”

public class Zoo {

private Animal[] animals;

public Zoo() {
    animals = new Animal[10];
}

public void talkAnimals() {
    int r;
    for (int i = 0; i < 10; i++) {

        r = (int) Math.round(Math.random());
        if (r == 0) {
            animals[i] = new Mouse();


        } else{
            animals[i] = new Lion();

        }

       }

    for (int i = 0; i < 10; i++) {

        animals[i].pinStick();

    }
}
public static void main(String[] args) {
    // TODO code application logic here
    new Zoo().talkAnimals();
}
您可以为Monkey声明另一个数组

private Animal[] monkeys;
建造师

monkeys = new Monkey[10];
并将新的Monkey对象推入for循环

for (int i = 0; i < 10; i++) {

    r = (int) Math.round(Math.random());
    if (r == 0) {
        animals[i] = new Mouse();


    } else{
        animals[i] = new Lion();

    }

        monkeys[i] = new Monkey();

   }
for(int i=0;i<10;i++){
r=(int)Math.round(Math.random());
如果(r==0){
动物[i]=新老鼠();
}否则{
动物[我]=新狮子;
}
猴子[我]=新猴子();
}
然后,在for循环中,只需执行打印工作

for (int i = 0; i < 10; i++) {

    animals[i].pinStick();
    monkeys[i].pinStick();
}
for(int i=0;i<10;i++){
动物[i].细针();
猴子[i].细针();
}

你的问题是如何在你的动物园中随机添加一只
猴子吗?不,问题是当这两个类中的任何一个出现时如何包含猴子类“ooahh”:但是每次循环运行时,如果(r==0){anies[I]=new Mouse();}否则{anies[I]=new Lion(),我必须让它打印猴子类的一个实例}是印刷的……像这样:吱吱!啊啊啊哈!吱吱声啊啊啊哈!吼叫啊啊啊哈!吱吱声啊啊啊哈!吱吱声啊啊啊哈!吼叫啊啊啊哈!吱吱声啊啊啊哈!吱吱声啊啊啊哈!吼叫啊啊啊哈!吱吱声啊啊啊哈!是的,就是这样,这只是一项关于数组和多态性的任务,包括有吼叫和吱吱声输出的猴子对我来说很棘手。
猴子
将取代刚刚添加的
鼠标
狮子
,你将看到一个满是
猴子
的动物园。为什么它会取代鼠标或狮子?它是在单独的数组对象(动物和猴子)中分配的,我已经对它进行了测试。我的错误是:我没有发现您使用的是单独的
猴子
数组。
monkeys = new Monkey[10];
for (int i = 0; i < 10; i++) {

    r = (int) Math.round(Math.random());
    if (r == 0) {
        animals[i] = new Mouse();


    } else{
        animals[i] = new Lion();

    }

        monkeys[i] = new Monkey();

   }
for (int i = 0; i < 10; i++) {

    animals[i].pinStick();
    monkeys[i].pinStick();
}