Диаграмма классов - Как будут выглядеть эти рефлексивные отношения?

Я делаю первые классовые диаграммы как часть моей карьеры, и, читая требования задания, я пришел к одному, где два атрибута объекта Animal - это Мать и Отец Животного, ЕСЛИ у них есть родословная.

Я спросил учителя курса, но единственное, что он мне сказал, было то, что я был прав, полагая, что это рефлексивные отношения, но остается следующее сомнение.

-Как это реализовано в коде?

Мы не видели такого рода отношений раньше, и я только обнаружил их, просматривая Stackru.

Также мы управляем объектами по требованию, поэтому вместо массивов списков мы недавно познакомились с использованием векторов и древовидных карт.

Вот так сейчас выглядит моя диаграмма классов.

Класс животных находится в верхнем правом углу

Padres = родители, и оправдание множественности состоит в том, что Животное может иметь или не иметь обоих родителей только на одной матери / отце.

Заранее большое спасибо.

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;
}
Другие вопросы по тегам