类图 - 这种反身关系看起来如何?

时间:2014-08-16 21:01:26

标签: java class-diagram

我正在做第一次类图作为我职业生涯的一部分,当我阅读作业的要求时,我来到了一个动物对象的两个属性是动物的母亲和父亲,如果他们有系谱。

我问过课程老师,但他告诉我的唯一一件事就是我认为这是一种反身关系,但我仍然存在以下疑问。

- 这是如何在代码中实现的?

之前我们还没有见过这种关系,我只是通过浏览StackOverflow来发现它。

我们也按需要管理对象,因此我们最近引入了矢量和树图的使用,而不是arrayLists。

这就是我的班级图现在的样子。

Animal class is in the top right corner.

Padres =父母,多重性的理由是,动物可能有也可能没有父母只有母亲/父亲注册。

提前多多感谢。

1 个答案:

答案 0 :(得分:1)

我不知道我是否正确理解了这个问题 - 下面的代码是否有任何帮助?

public class Animal {
    private Animal padre;
    private Animal madre;

    // ...
    // other fields
    // ...

    //one of the constructors.
    public Animal(final Animal padre, final Animal madre)
    {
        this.padre = padre;
        this.madre = madre;
    }

    // ...
    // rest of your code
    // ...
}

或者如果它应该是一个数组,那么:

//field
private Animal[] padres;
//constructor
public Animal(final Animal[] padres) {
    if (padres != null) {
        if (padres.length > 2) {
            throw new IllegalStateException("Too many parents");
        }
    }
    this.padres = padres;
}