在Java中存储多个变量的好方法?

时间:2011-02-13 05:43:31

标签: java

假设我有这些怪物(已经配置了他们的名字,攻击,等级,exp等),但是有什么方法可以跟踪他们的X和Y?

也许是ArrayList<>?喜欢添加arraylist 1|12|8|3,其中1是Monster的ID(以后用作m 1。gif,12是X,8是Y,3是地图编号。

您认为在Java中将怪物存储在地图中的好方法是什么?

3 个答案:

答案 0 :(得分:6)

嗯,你当然不希望通过在面向对象语言中使用对象来利用Encapsulation。

class Monster 
{
  private String myName;
  private int attack;
  private int level;
  private int experience;
  public Monster(String n, int att, int lvl, int e)
  {
      myName = n;
      attack = att;
      level = lvl;
      experience = e;
  }

  // other useful methods go here!
}

答案 1 :(得分:5)

您所描述的内容,只是存储了几个int,是一种名为“Primitive Obsession”的代码气味

通常更好的解决方案是提出一个意味着你想要它的意思的对象。例如,您可以使用Map,其中键是怪物,值为 MapPoint s (X,Y和地图ID)。

通常,您应该开始考虑对象和命名这些您想要使用的概念。

祝你好运!

答案 2 :(得分:1)

最好创建一个可容纳变量的“怪物”类。

如果你只存储四个变量,那么更快的鸭子方式就是使用常规数组而不是ArrayList。

int[] monster1 = { 1, 12, 8, 3 };

要访问它们:

int id = monster1[0];