Я сначала вообще подумал, что эта задача, в отличие от похожих на предыдущих уровнях, должна решаться исключительно с помощью методов, без конструкторов. Поэтому изначально пробовал решать методами, но не понял как, зашел за подсказкой в комменты, а там все конструкторами решают, пришлось переделывать )
В итоге быстро решил, почерпнув тут пару подсказок, даже и не понял особо, как оно решилось.
Короче, вот:
Human child1 = new Human("Tom",true,5, new ArrayList<>());
Human child2 = new Human("Lora",false,7, new ArrayList<>());
Human child3 = new Human("Chris",true,6, new ArrayList<>());
ArrayList<Human> children = new ArrayList<>();
children.add(child1);
children.add(child2);
children.add(child3);
Human mother = new Human("Monika",false,26,children);
Human father = new Human("Bret",true,28,children);
ArrayList<Human> f = new ArrayList<>();
f.add(father);
ArrayList<Human> m = new ArrayList<>();
m.add(mother);
Human gm1 = new Human("Mona",false,55,f);
Human gf1 = new Human("Max",true,54,f);
Human gm2 = new Human("Ruby",false,52,m);
Human gf2 = new Human("Vayne",true,49,m);
public static class Human {
//напишите тут ваш код
String name;
boolean sex;
int age;
ArrayList<Human> children;
Human(String name, boolean sex, int age, ArrayList<Human> children) {
this.name=name;
this.age=age;
this.sex=sex;
this.children=children;
}
Меня интересует в целом правильность такого подхода к решению, в частности:
1) Почему пришлось инициализировать детей пустым ArrayList ?
2) Возможно стоило было как-то иначе объявить конструктор или переменные класса Human ?