From ea6c8052c1cc9c7ec7fdbf9dc94da5acdd104250 Mon Sep 17 00:00:00 2001 From: Ileyan <3003916@stud.hs-mannheim.de> Date: Wed, 5 Jun 2024 21:17:10 +0200 Subject: [PATCH] Update klausuraufgaben.md --- ileyan/klausuraufgaben.md | 73 ++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/ileyan/klausuraufgaben.md b/ileyan/klausuraufgaben.md index e988a74..5d50cbd 100644 --- a/ileyan/klausuraufgaben.md +++ b/ileyan/klausuraufgaben.md @@ -12,13 +12,13 @@ Wie kann man in Groovy sicherstellen, dass in folgendem Codebeispiel keine NullP ```Groovy class Person { - String name - Address address + def name + def address } class Address { - String city - String street + def city + def street } def person = new Person(name: "Thomas Smits") @@ -55,13 +55,22 @@ println geradeZahlen ## Klassen und Closures: -Schreiben sie eine simple Klasse **Person**, die als Attribute den Namen und das Alter einer Person erhält. Erstellen sie im nächsten Schritt folgende drei Objekte dieser Klasse und packen sie diese in eine Liste: +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: 1. Max, 12 Jahre 2. Karl, 40 Jahre 3. Laura, 23 Jahre -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: +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] @@ -75,16 +84,11 @@ Die **collect()** Methode wird verwendet, um eine Liste oder eine Sammlung zu tr ```Groovy class Person { - String name - int alter - - public Person(String name, int alter){ - this.name = name - this.alter = alter + def name + def alter } -} -def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23)] +def personen = [new Person(name: "Max", alter: 12), new Person(name: "Karl", alter: 40), new Person(name: "Laura", alter: 23)] def volljaehrig = { person -> person.alter > 17} def erwachsenePersonen = personen.findAll(volljaehrig) @@ -104,13 +108,8 @@ Gegeben sei folgender Groovy-Code: ```Groovy class Person { - String name - int alter - - public Person(String name, int alter){ - this.name = name - this.alter = alter - } + def name + def alter def printIfAdult() { if (this.alter > 17) { @@ -119,26 +118,30 @@ class Person { } } -def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23), new Person("Ali", 15)] +def personen = //Hier die Liste einfügen for (person in personen) { person.printIfAdult() } ``` -Schreiben sie den Code so um, sodass anstelle der for-in-Schleife ein passender Operator benutzt wird. +Erstellen Sie an der angegebenen Stelle eine Liste von folgenden Personen mit folgenden Attributen: + +| Name | Alter | +| ----- | ----- | +| Max | 12 | +| Karl | 40 | +| Laura | 23 | +| Ali | 15 | + +Schreiben sie nun den Code so um, sodass anstelle der for-in-Schleife ein passender Operator benutzt wird. #### Lösung: ```Groovy class Person { - String name - int alter - - public Person(String name, int alter){ - this.name = name - this.alter = alter - } + def name + def alter def printIfAdult() { if (this.alter > 17) { @@ -147,7 +150,7 @@ class Person { } } -def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23), new Person("Ali", 15)] +def personen = [new Person(name: "Max", alter: 12), new Person(name: "Karl", alter: 40), new Person(name: "Laura", alter: 23), new Person(name: "Ali", alter: 15)] // Hier den Spread-Operator benutzen personen*.printIfAdult() @@ -193,7 +196,7 @@ def str = "GGRROOOOVVYY IISSTT CCOOOOLL!!" Benutzen sie eine for-in Schleife, um auf diesem String folgende Ausgabe zu erzeugen, definieren sie hierbei **keinen** neuen String. ```Groovy -"GROOVY IST COOL!" +"groovy ist cool!" ``` #### Lösung: @@ -205,7 +208,7 @@ for(i in 0..str.length()) { if (i % 2 == 0) { continue } - print str[i] + print str[i].toLowerCase() } ``` @@ -222,7 +225,7 @@ for(int i = 0; i < str.length(); i++){ if (i % 2 == 0) { continue } - print str[i] + print str[i].toLowerCase() } ``` @@ -240,7 +243,7 @@ while (i < str.length()) { i++ continue } - print str[i] + print str[i].toLowerCase() i++ } ```