我有一个坦克课和一个物品课。在构造函数的tank类中,我用arraylist保存了tank项目。
坦克类
public class Tank{
private String id;
private String name;
private String description;
private String imageBackground;
private double length;
private double height;
private double width;
private double temperature;
private int ph;
private List<Item> items;
public Tank() throws TankException{
this("D1","Default", "Tank Default", 50.25, 10.55, 100.232, "./", 15, 7);
}
public Tank(String id, String name, String description, double length, double height, double width, String imageBackground, double temperature, int ph) throws TankException {
setId(id);
setName(name);
setDescription(description);
setLength(length);
setHeight(height);
setWidth(width);
setImageBackground(imageBackground);
setTemperature(temperature);
setPh(ph);
items = new ArrayList<Item>();
}
班级项目
public abstract class Item extends ImageView{
private static int nextId = 0;
private double xCoord, yCoord; //location
private double length, height; // define size of item
private String spriteImage;
private Tank tank;
protected Item(double xCoord, double yCoord, String spriteImage, double length, double height, Tank tank) throws ItemException {
setId("I"+nextId);
nextId++;
setLocation(xCoord,yCoord);
setSpriteImage(spriteImage);
setLength(length);
setHeight(height);
setTank(tank);
}
现在他们要求我添加一个名为keeper的新类,它必须具有三个属性:
ID,名称,姓氏。
此外,他们还要求我保留由保管人负责的储罐项目的参考。
在水箱中,我们不应让看管人负责。
每个饲养员最多可护理5个坦克。
但我不知道我做的是否正确,请在keeper中创建一个项目类型对象,并在tank中创建一个5位arraylist。
这是我的代码类管理员:
public class Keeper {
private int id;
private String nombre;
private String apellido;
private Item itemstanques;
protected Keeper(int id, String nombre, String apellido) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
}
在坦克课上,我添加了5个位置arraylist
private List<Keeper> keeper;
和构造函数
public Tank(String id, String name, String description, double length, double height, double
width, String imageBackground, double temperature, int ph) throws TankException {
setId(id);
setName(name);
setDescription(description);
setLength(length);
setHeight(height);
setWidth(width);
setImageBackground(imageBackground);
setTemperature(temperature);
setPh(ph);
items = new ArrayList<Item>();
keeper=new ArrayList<Keeper>(4);
}
这样对吗?
最佳答案
所以我可以看到它为您带来了困惑。请记住,它始终取决于要求,因此我可能会解释这种错误。但是我想说一个坦克有一个物品清单是有道理的,但是在坦克类内部,它可能只是对物品清单的引用。然后在创建水箱时,在主容器中可以使用一种添加方法的简便方法。因此,坦克类可能看起来像:
public class Tank{
.
.
.
private List<Item> items;
public Tank(String id, String name, String description, double length, double height, double width, String imageBackground, double temperature, int ph, List<Item> tankItems) throws TankException {
setId(id);
setName(name);
setDescription(description);
setLength(length);
setHeight(height);
setWidth(width);
setImageBackground(imageBackground);
setTemperature(temperature);
setPh(ph);
this.items = tankItems;
}
然后在您的主目录中可以添加列表:
public class Match {
public static void main(String[] args) {
Tank tank1 = new Tank("D1","Default", "Tank Default"
, 50.25, 10.55, 100.232, "./"
, 15, 7, addItems());
}
public static List<Items> addItems(){
//build your list of tankItems here of items
.
.
return tankItems;
}
}
根据我的阅读方式和上面的解释,我将从Item类中删除tank。尚不清楚是否需要将某个项目与坦克相关联,但是这取决于您。
在您的门将类中,听起来像一位门将可以维持5辆坦克,所以一种方法是:
public class keeper {
private int id;
private String nombre;
private String apellido;
private List<tank> tanks;
private boolean estoyLlena;
protected Keeper(int id, String nombre, String apellido) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.estoyLlena = false;
tanks = null;
}
public boolean addTankToKeeper(Tank aTank) {
if(this.tanks.size() < 5) {
this.tanks.add(aTank);
return true;
} else {
return false;
}
}
}
希望能有所帮助。