# Zusammenfassung: Gegeben sei folgender Java-Code: ```Java import java.util.ArrayList; import java.util.List; class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString(){ return this.name + ", Alter: " + this.age; } } public class Main { public static void main(String[] args) { List personen = new ArrayList<>(); personen.add(new Person("Alice", 20)); personen.add(new Person("Bob", 18)); personen.add(new Person("Charlie", 30)); personen.add(new Person("David", 15)); personen.add(new Person("Eve", 21)); for (Person p : personen) { System.out.println(p); } int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } System.out.println("Summe der Zahlen von 1-10: " + sum); } } ``` Der Code hat folgende Ausgabe: ``` Alice, Alter: 20 Bob, Alter: 18 Charlie, Alter: 30 David, Alter: 15 Eve, Alter: 21 Summe der Zahlen von 1-10: 55 ``` Wandeln sie den Java-Code so in Groovy-Code um, dass er die selbe Ausgabe erzeugt und folgende Groovy-Features benutzt: 1. String Interpolation 2. Ranges 3. Variablendefinition mit `def` 4. `each`-Schleifen und Closures 5. Dynamische Listen 6. `for-in`-Schleifen 7. Objekterstellung mit Default-Konstruktoren Versuchen sie sich beim implementieren so kurz wie möglich zu halten. Ziel dieser Aufgabe ist es, das gelernte zu wiederholen und zu zeigen wie kompakt Groovy-Code im Vergleich zu Java-Code sein kann.