2017-11-16 11 views
-2

メインクラスは、int型のRの値が1または0の各時間であるMath.randomによって決定される、動物園アレイループの動物園、動物のクラスそれぞれ異なる動物(他のクラス)からpinStickメソッドを呼び出すことによって多型を実行配列ループ内に複数のクラスインスタンスを追加するにはどうすればよいですか?

ありますその結果、どの動物クラスが呼び出されるかに応じて、かすれ音や轟音が発生します。

私の質問は、私は(if文で)マウスやライオンが呼び出されるたびに印刷するクラス猿のインスタンスを含めることができるか、である

目的は、猿クラスの新しいインスタンスを追加することですそのためには、結果のプリントアウトであなたは「スクイーク」と「咆哮」

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(); 
} 

}

public class Animal { 

protected String name; 

public Animal(){ 
} 

public void pinStick(){ 

} 

}

012と一緒に「OoOoAhAh」を持っています
public class Mouse extends Animal { 

public void pinStick(){ 
    System.out.print("Squeak!"); 

} 

}

public class Monkey extends Animal { 

public void pinStick(){ 
    System.out.print("OoOoOoAhAhAh!"); 
} 

}

public class Lion extends Animal { 


public void pinStick(){ 
    System.out.print("Roar!"); 


} 

}

+0

あなたの動物園に 'Monkey'をランダムに追加するにはどうすればいいですか? –

+0

いいえ、これらの2つのうちのいずれかのときにMonkeyクラス "ooahah"を含める方法です:しかし、ループが実行されるたびにmonkeyクラスのインスタンスを出力する必要があります if(r == 0){ animals [ i] = new Mouse(); } else { animals [i] = new Lion(); } が印刷されている...このよう – paulc01

+0

:!!!!!!!!!!!!!!!!! SqueakのOoOoOoAhAhAh SqueakのOoOoOoAhAhAh咆哮OoOoOoAhAhAh SqueakのOoOoOoAhAhAh SqueakのOoOoOoAhAhAh咆哮OoOoOoAhAhAh SqueakのOoOoOoAhAhAh SqueakのOoOoOoAhAhAh咆哮OoOoOoAhAhAh !すごい!OoOoOhAhAhAh! – AndresMontj

答えて

-1

目的は、結果のプリントアウトであなたはOoOoAhAh」持っているように、サルクラスの新しいインスタンスを追加することです"と" Squeak "と" Roar "

あなただけの猿

private Animal[] monkeys; 

コンストラクタ

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(); 
} 
+0

いいえ。「Monkey」はちょうど追加された 'Mouse'または' Lion'を置き換えます。あなたは 'Monkey'sでいっぱいの動物園で終わるでしょう。 –

+0

マウスやライオンに代わるのはなぜですか?別の配列オブジェクト(Animals and Monkeys)に割り当てられています。私はそれをテストしました。 –

+0

私の間違い:別の「猿」配列を使っていたことはわかりませんでした。 –

関連する問題