91 lines
2.1 KiB
Markdown
91 lines
2.1 KiB
Markdown
|
# 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<Person> 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("Sum of numbers from 1 to 10: " + sum);
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Der Code hat folgende Ausgabe:
|
||
|
|
||
|
```
|
||
|
Alice, Alter: 20
|
||
|
Bob, Alter: 18
|
||
|
Charlie, Alter: 30
|
||
|
David, Alter: 15
|
||
|
Eve, Alter: 21
|
||
|
Sum of numbers from 1 to 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.
|
||
|
|
||
|
#### Lösung:
|
||
|
|
||
|
```Groovy
|
||
|
class Person{
|
||
|
def name
|
||
|
def age
|
||
|
|
||
|
def toString() {
|
||
|
"${name}, Alter: ${age}"
|
||
|
}
|
||
|
}
|
||
|
def personen = [new Person(name: "Alice", age: 20),
|
||
|
new Person(name: "Bob", age: 18),
|
||
|
new Person(name: "Charlie", age: 30),
|
||
|
new Person(name: "David", age: 15),
|
||
|
new Person(name: "Eve", age: 21)]
|
||
|
|
||
|
personen.each{println it}
|
||
|
def sum = 0
|
||
|
for (i in 1..10) {
|
||
|
sum += i
|
||
|
}
|
||
|
println("Summe der Zahlen von 1-10: ${sum}");
|
||
|
```
|