我有一个坦克课和一个物品课。在构造函数的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;
        }

    }
}


希望能有所帮助。

09-28 09:51