I don't get why it fails. Maybe someone has better eyes than me.
package de.codegym.task.task08.task0824;
/*
Eine Familie gründen
*/
import java.util.ArrayList;
public class Solution {
public static void main (String[] args) {
ArrayList<Mensch> noChild = new ArrayList<>(); // empty List because a constructor without a list does not work with this toString()
Mensch c1 = new Mensch("C1", true, 12, noChild); // create 3 children
Mensch c2 = new Mensch("C2", false, 8, noChild);
Mensch c3 = new Mensch("C3", true, 4, noChild);
ArrayList<Mensch> grandChild = new ArrayList<>(); // add them to the grandchildren list
grandChild.add(c1);
grandChild.add(c2);
grandChild.add(c3);
Mensch v1 = new Mensch("V1", true, 50, grandChild); // create parents
Mensch m1 = new Mensch("M1", false, 50, grandChild);
ArrayList<Mensch> child = new ArrayList<>(); // add parents to a seperate children list
child.add(v1);
child.add(m1);
Mensch gv1 = new Mensch("GV1", true, 78, child); // create grandparents
Mensch gv2 = new Mensch("GV2", true, 75, child);
Mensch gm1 = new Mensch("GM1", false, 78, child);
Mensch gm2 = new Mensch("GM2", false, 75, child);
System.out.println(gv1.toString()); // use the toString method to print
System.out.println(gv2.toString());
System.out.println(gm1.toString());
System.out.println(gm2.toString());
System.out.println(v1.toString());
System.out.println(m1.toString());
System.out.println(c1.toString());
System.out.println(c2.toString());
System.out.println(c3.toString());
}
public static class Mensch {
String name;
boolean geschlecht;
int alter;
ArrayList<Mensch> kinder;
public Mensch (String v1, boolean b, int i, ArrayList<Mensch> grandChild) { // constructor for class Mensch
this.name = v1;
this.geschlecht = b;
this.alter = i;
this.kinder = grandChild;
}
public String toString () {
String text = "";
text += "Name: " + this.name;
text += ", Geschlecht: " + (this.geschlecht ? "männlich" : "weiblich");
text += ", Alter: " + this.alter;
int anzahlKinder = this.kinder.size();
if (anzahlKinder > 0) {
text += ", Kinder: " + this.kinder.get(0).name;
for (int i = 1; i < anzahlKinder; i++) {
Mensch kind = this.kinder.get(i);
text += ", " + kind.name;
}
}
return text;
}
}
}