大家好。我实际上在使用这些序列图时遇到了一些麻烦。它说“所有动物都依赖于种族生活在自己的笼子里。”我真的需要帮助这个简单的图表,因为我真的不知道如何在我的Java程序中编写它。我确定它的大部分都是简单的。所以请帮帮我! 这里是图表:
Zookeeper类/ Mainclass:
package General;
import Zoo.Cage;
public class ZooKeeper {
public static void main(String[] args){
Cage cage1 = new Cage();
}
}
Cage class:
public class Cage {
private String type;
private ArrayList<Animal> cagedAnimals;
public Cage(String type){
this.type = type;
}
public Cage() {
}
public Animal selectAnimal(){
return null;
}
public void getCageType(){
}
public boolean addAnimal(Animal anAnimal){
return true;
}
public ArrayList<Animal> getCagedAnimals(){
ArrayList<Animal> i = new ArrayList<>();
return i;
}
public void addReptileEggs(ArrayList<Egg> reptileEggs){
}
}
Zoo类:
package Zoo;
import General.Animal;
import General.Egg;
import java.util.ArrayList;
import java.util.TreeSet`;
public class Zoo {
private final String name;
private TreeSet<Cage> cages;
/* private ArrayList<Cage> cages;*/
private String Zoo;
private static Zoo instance = new Zoo();
public Zoo() {
this.name = "AnimalK";
}
public static Zoo getInstance() {
if (instance == null) {
instance = new Zoo();
}
return instance;
}
}
答案 0 :(得分:0)
您可以看到所有内容都发生在构造函数Cage()
中:
public Cage() {
Zoo z = Zoo.getInstance("ICO41A");
boolean b = z.addCage(this);
}
请注意,z
可能是一个字段,如果我们以后需要使用它。
类Zoo
现在:我们已经看到getInstance有一个String
参数;我假设它是Zoo
的名称,而不是一个静态实例,我们可以保持静态Map<String,Zoo>
:
public class Zoo {
private static Map<String,Zoo> instances = new HashMap<>();
public static Zoo getInstance(String name) {
Zoo instance = instances.get(name);
if (instance == null) {
instance = new Zoo(name);
instances.put(name, instance);
}
return instance;
}
将名称传递给构造函数,并初始化Set
cages
(使用空HashSet
)。我使用了HashSet
而不是TreeSet
,因为Cage
不是Comparable
:
private final String name;
private final Set<Cage> cages = new HashSet<>();
private Zoo(String name) {
this.name = name;
}
最后,方法addCage
在集合中添加Cage
:
public boolean addCage(Cage cage) {
return cages.add(cage);
}