Update klausuraufgaben.md
parent
b6ea16bfa0
commit
ea6c8052c1
|
@ -12,13 +12,13 @@ Wie kann man in Groovy sicherstellen, dass in folgendem Codebeispiel keine NullP
|
||||||
|
|
||||||
```Groovy
|
```Groovy
|
||||||
class Person {
|
class Person {
|
||||||
String name
|
def name
|
||||||
Address address
|
def address
|
||||||
}
|
}
|
||||||
|
|
||||||
class Address {
|
class Address {
|
||||||
String city
|
def city
|
||||||
String street
|
def street
|
||||||
}
|
}
|
||||||
|
|
||||||
def person = new Person(name: "Thomas Smits")
|
def person = new Person(name: "Thomas Smits")
|
||||||
|
@ -55,13 +55,22 @@ println geradeZahlen
|
||||||
|
|
||||||
## Klassen und Closures:
|
## 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
|
1. Max, 12 Jahre
|
||||||
2. Karl, 40 Jahre
|
2. Karl, 40 Jahre
|
||||||
3. Laura, 23 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
|
```Groovy
|
||||||
[KARL, LAURA]
|
[KARL, LAURA]
|
||||||
|
@ -75,16 +84,11 @@ Die **collect()** Methode wird verwendet, um eine Liste oder eine Sammlung zu tr
|
||||||
|
|
||||||
```Groovy
|
```Groovy
|
||||||
class Person {
|
class Person {
|
||||||
String name
|
def name
|
||||||
int alter
|
def alter
|
||||||
|
|
||||||
public Person(String name, int alter){
|
|
||||||
this.name = name
|
|
||||||
this.alter = 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 volljaehrig = { person -> person.alter > 17}
|
||||||
def erwachsenePersonen = personen.findAll(volljaehrig)
|
def erwachsenePersonen = personen.findAll(volljaehrig)
|
||||||
|
@ -104,13 +108,8 @@ Gegeben sei folgender Groovy-Code:
|
||||||
|
|
||||||
```Groovy
|
```Groovy
|
||||||
class Person {
|
class Person {
|
||||||
String name
|
def name
|
||||||
int alter
|
def alter
|
||||||
|
|
||||||
public Person(String name, int alter){
|
|
||||||
this.name = name
|
|
||||||
this.alter = alter
|
|
||||||
}
|
|
||||||
|
|
||||||
def printIfAdult() {
|
def printIfAdult() {
|
||||||
if (this.alter > 17) {
|
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) {
|
for (person in personen) {
|
||||||
person.printIfAdult()
|
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:
|
#### Lösung:
|
||||||
|
|
||||||
```Groovy
|
```Groovy
|
||||||
class Person {
|
class Person {
|
||||||
String name
|
def name
|
||||||
int alter
|
def alter
|
||||||
|
|
||||||
public Person(String name, int alter){
|
|
||||||
this.name = name
|
|
||||||
this.alter = alter
|
|
||||||
}
|
|
||||||
|
|
||||||
def printIfAdult() {
|
def printIfAdult() {
|
||||||
if (this.alter > 17) {
|
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
|
// Hier den Spread-Operator benutzen
|
||||||
personen*.printIfAdult()
|
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.
|
Benutzen sie eine for-in Schleife, um auf diesem String folgende Ausgabe zu erzeugen, definieren sie hierbei **keinen** neuen String.
|
||||||
|
|
||||||
```Groovy
|
```Groovy
|
||||||
"GROOVY IST COOL!"
|
"groovy ist cool!"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Lösung:
|
#### Lösung:
|
||||||
|
@ -205,7 +208,7 @@ for(i in 0..str.length()) {
|
||||||
if (i % 2 == 0) {
|
if (i % 2 == 0) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
print str[i]
|
print str[i].toLowerCase()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -222,7 +225,7 @@ for(int i = 0; i < str.length(); i++){
|
||||||
if (i % 2 == 0) {
|
if (i % 2 == 0) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
print str[i]
|
print str[i].toLowerCase()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -240,7 +243,7 @@ while (i < str.length()) {
|
||||||
i++
|
i++
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
print str[i]
|
print str[i].toLowerCase()
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue