diff --git a/yuliya/aufgaben.md b/yuliya/aufgaben.md index 6ad3d9b..fb99f70 100644 --- a/yuliya/aufgaben.md +++ b/yuliya/aufgaben.md @@ -177,3 +177,45 @@ manager.employees.each { println it } println("\nHigh Earners:") highEarners.each { println it } ``` + +## Klausuraufgaben + +### 1. Was ist ein Default-Konstruktor? + +Lösung + +Groovy fügt automatisch einen Standardkonstruktor hinzu, wenn keine Konstruktoren explizit +definiert sind. Dieser Konstruktor initialisiert alle Eigenschaften der Klasse mit ihren +Standardwerten. + +### 2. Folgende Klasse ist vorgegeben: +``` +class Person { + String name + int age + } +``` +### Initialisieren Sie eine Instanz der Klasse Person mit Attributen "John" und 25. + +Lösung +``` +Person person = new Person(name: "John", age: 20) +``` + +### 3. Was ist ein Mixin in Groovy und wie wird es verwendet? + +Lösung + +Ein Mixin ermöglicht das Hinzufügen von Funktionalität zu Klassen ohne Vererbung. Es wird mit +der @Mixin Annotation verwendet. + +### 4. Wie iteriert man über eine Map in Groovy und was gibt die each Methode zurück? Beipiel? + +Lösung + +Man iteriert über eine Map mit der each Methode. Diese Methode gibt jedes Key-Value-Paar der +Map zurück. +``` +def myMap = ['subject': 'groovy', 'topic': 'closures'] +myMap.each { key, value -> println "$key: $value" } +``` diff --git a/yuliya/klassen&methoden.md b/yuliya/klassen&methoden.md index f33ca55..5397ee5 100644 --- a/yuliya/klassen&methoden.md +++ b/yuliya/klassen&methoden.md @@ -71,6 +71,7 @@ Groovy bietet eine spezielle Initialisierungsform mit einer Map an. Dieser Konst ermöglicht Objekte einfach und übersichtlich zu initialisieren, indem die Eigenschaften des Objekts direkt in Form von Schlüssel-Wert-Paaren in der Map angegeben werden. Groovy kümmert sich dann um die Zuordnung der Werte zu den entsprechenden Feldern der Klasse. +Der Map-Konstruktor muss nicht explizit definiert werden (hier nur als Beispiel), da es ein eingebautes Standard-Feature von Groovy ist. ``` class Person { String name @@ -176,7 +177,7 @@ sum(5,2) ### Instanzmethoden -Methoden können Instanzmethoden sein und auf Instanzvariablen zugreifen. +Methoden können Instanzmethoden sein und auf Instanzvariablen zugreifen, indem man $-Zeichen und optional eckige Klammern nutzt. ``` class Person { @@ -185,7 +186,7 @@ class Person { // Instanzmethode, um die Person vorzustellen def introduce() { - println("Hello, my name is ${name} and I am ${age} years old.") + println("Hello, my name is $name and I am ${age} years old.") } }