就像標題所說,我是一個Java初學者,我目前正在學校中的一個項目中工作,我在動物園中存儲動物並顯示他們的聲音。 這是我Zoo
類:存儲在不同的數組java初學者
public final class Zoo {
private Animal[] animals;
private int nextIndex;
public Zoo() {
animals = new Animal[5];
nextIndex = 0;
}
public void addAnimal(Animal animal) {
if (animal instanceof DangerousAnimal) {
System.out.println(animal.getAnimalName() + " is dangerous. We don't store dangerous animals in our zoo!");
return;
}
if (doesAnimalExist(animal)) {
System.out.println(animal.getAnimalName() + " already exists in storage. Can't store it twice!");
} else {
if (nextIndex >= animals.length) {
animals = Arrays.copyOf(animals, animals.length + 5);
}
animals[nextIndex] = animal;
nextIndex++;
}
}
public void hearAnimalSound() {
for (Animal aniTemp : animals) {
if (aniTemp == null) {
break;
}
System.out.println(aniTemp.getAnimalName() + ": " + aniTemp.sound());
}
}
public boolean doesAnimalExist(Animal animalAdd) {
for (Animal animal : animals) {
if (animalAdd.equals(animal)) {
return true;
}
}
return false;
}
}
現在我需要存儲我的動物在兩個不同的陣列,家養和野生的,我不知道如何做到這一點。
我想這樣做是這樣的:
public class AnimalStorage {
private Animal[] animals;
public void addAnimal(Animal animal) {
}
}
public class Zoo {
private AnimalStorage domesticAnimals;
private AnimalStorage wildAnimals;
public void addAnimal(Animal animal) {
}
}
但是,什麼纔是我的addAnimal
方法各自的類實現?或者我應該以另一種方式來做? 我有點迷失在這裏。我很感激我能得到的所有幫助。 謝謝! 大衛
@ajb對不起,這裏是我的動物類和子類:
公共抽象類動物{
private final String animalName;
public Animal(String animalName) {
this.animalName = animalName;
}
public abstract String sound();
public String getAnimalName() {
return animalName;
}
@Override
public String toString() {
return animalName;
}
@Override
public boolean equals(Object otherAnimal) {
if (otherAnimal != null && this.getClass().equals(otherAnimal.getClass())) {
Animal animal = (Animal) otherAnimal;
return this.animalName.equals(animal.animalName);
}
return false;
}
}
公衆最終熊類動物延伸,實現DangerousAnimal {
public Bear(String animalName) {
super(animalName);
}
@Override
public String sound() {
return "Wraaaaaar!";
}
@Override
public String toString() {
return super.getAnimalName();
}
}
公共最後一類猴動物擴展{
public Monkey(String animalName) {
super(animalName);
}
@Override
public String sound() {
return "Ooooh ooh aaah aaah!";
}
@Override
public String toString() {
return getAnimalName();
}
}
動物的其餘部分都是一樣的..
我主要如下所示:
公共類主{public static void main(String [] args){
Zoo zoo = new Zoo();
zoo.addAnimal(new Bear("Baloo the Bear"));
zoo.addAnimal(new Lion("Simba the Lion"));
zoo.addAnimal(new Snake("Kaa the Snake"));
zoo.addAnimal(new Monkey("Abu the Monkey"));
zoo.addAnimal(new Bird("Tweety the Bird"));
zoo.addAnimal(new Donkey("I-or the Donkey"));
zoo.hearAnimalSound();
System.out.println();
zoo.addAnimal(new Donkey("I-or the Donkey"));
}
}
沒有看到動物類和子類,或者至少知道它們是什麼以及它們支持什麼方法,我懷疑任何人都可以真正給你提供任何幫助。 – ajb
對不起!我編輯了我的帖子,現在你可以看到我的Animal類,子類和主類。謝謝! – David