28 lines
1.2 KiB
Markdown
28 lines
1.2 KiB
Markdown
## Klassen und Closures:
|
|
|
|
Gegeben sei eine simple Klasse **Person**, die als Attribute den Namen und das Alter einer Person erhält.
|
|
|
|
```Groovy
|
|
class Person{
|
|
def name
|
|
def alter
|
|
}
|
|
```
|
|
|
|
Kopieren sie den obrigen Code, erstellen sie folgende drei Objekte dieser Klasse und packen sie diese in eine Liste:
|
|
|
|
| Name | Alter |
|
|
| ----- | ----- |
|
|
| Max | 12 |
|
|
| Karl | 40 |
|
|
| Laura | 23 |
|
|
|
|
Erweitern sie die Klasse nicht, sondern nehmen Sie sie genauso wie sie ist. Wenden sie nun zwei Closures auf diese Liste an, um alle Personen, die volljährig sind in eine Liste zu schreiben. Die Namen sollen diesmal aber groß geschrieben sein. Ihre Ausgabe sollte also wie folgt aussehen:
|
|
|
|
```Groovy
|
|
[KARL, LAURA]
|
|
```
|
|
|
|
_Tipp: Sie werden sowohl die **findAll()**, als auch die **collect()** Methode auf Listen brauchen. Beide Methoden nehmen ein Closure als Argument an. \
|
|
Die **findAll()** Methode prüft alle Elemente einer Liste auf eine Bedingung und gibt eine neue Liste aus mit allen Elementen, auf die die Bedingung zutrifft. \
|
|
Die **collect()** Methode wird verwendet, um eine Liste oder eine Sammlung zu transformieren und gibt eine neue Liste mit den transformierten Elementen aus._ |