Диаграмма классов - Как будут выглядеть эти рефлексивные отношения?
Я делаю первые классовые диаграммы как часть моей карьеры, и, читая требования задания, я пришел к одному, где два атрибута объекта 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;
}