Java - 跟踪其他对象引用了多少对象

时间:2016-06-22 04:50:05

标签: java

我必须跟踪另一个对象引用了多少个对象,让我们说我有一个类月亮引用行星类:

private String moonName;
private planet planet;

public bulan(String moonName, planet planet) {
    this.moonName = moonName;
    this.planet = planet;
    planet.addMoon(moonName);
}

然后我在测试类中创建月球对象:

moon Luna = new moon("Luna",Earth);

我希望班级星球能够#34;知道"那个星球类已经被月球类引用了,怎么做?

2 个答案:

答案 0 :(得分:0)

StackOverflow相当新,但我想我可以提供帮助。

在我达到要点之前的一些一般性指示:

  • "行星"是一个实体,所以你必须写 private Planet planet private planet planet
  • 将相同的概念应用于你的月亮,星球(例如Moon moon = new Moon("Luna, Earth")
  • 如果您上面的代码是月亮,那么您的构造函数应该与您的类名称相同(例如public Moon(String moonName, Planet planet){}

现在重点:

现在因为每次调用构造函数时,初始化行星参考对象,我的建议是简单地包含一个实例变量(直到会话结束为止) ),计数器 getter方法。 例如:

private int numCalled = 0;
    public Moon(String moonName, Planet planet){ 
      this.moonName;
      this.planet=planet;
      planet.addMoon(moonName);
      numCalled++;
    }
    public int getNumCalled(){
        return numCalled;
    }

答案 1 :(得分:0)

开始使用:

class Moon{
    public final String name;
    public final Planet planet;
    public Moon(String name, Planet planet) {
        super();
        this.name = name;
        this.planet = planet;
    }
}

class Planet{
    public final String name;
    private List<Moon> moons = new ArrayList<>();
    public Planet(String name) {
        super();
        this.name = name;
    }
    public void addMoon(Moon moon){
        this.moons.add(moon);
    }
    public List<Moon> getMoons(){
        return this.moons;
    }
}

另请阅读Stephen Ngo关于一般观点的文章。您可能应该阅读Java中的命名约定。