update klassen und methoden

main
Yuliya Rudenko 2024-05-19 17:39:34 +02:00
parent 9e02f2a64c
commit 3f7c67315f
1 changed files with 36 additions and 12 deletions

View File

@ -1,6 +1,7 @@
## Klassen
- Definition einer Klasse
Klassen in Groovy werden ähnlich wie in Java definiert, jedoch mit einigen
syntaktischen Erleichterungen
@ -13,8 +14,9 @@ Beispiel
```
- Eigenschaften
Eigenschaften können direkt als Felder definiert werden. Groovy
generiert automatisch Getter- und Setter-Methoden (wie in Ruby)
Eigenschaften können direkt als Felder definiert werden. Groovy
generiert automatisch Getter- und Setter-Methoden (wie in Ruby)
Beispiel
```
@ -26,6 +28,7 @@ println person.name
//John
```
Getter und Setter können aber auch manuell überschrieben werden
Beispiel
@ -60,9 +63,10 @@ static void(args) {
}
```
-Konstruktoren
Groovy fügt automatisch einen Standardkonstruktor hinzu. Man kann auch
benutzerdefinierte Konstruktoren definieren.
- Konstruktoren
Groovy fügt automatisch einen Standardkonstruktor hinzu. Man kann auch
benutzerdefinierte Konstruktoren definieren.
```
class Person {
String name
@ -75,8 +79,9 @@ class Person {
}
```
-Standardkonstruktor mit Map
Groovy bietet eine spezielle Initialisierungsform mit einer Map an
- Standardkonstruktor mit Map
Groovy bietet eine spezielle Initialisierungsform mit einer Map an
```
Person person = new Person(name: 'John', age: 30)
```
@ -84,6 +89,7 @@ class Person {
## Methoden
- Definition einer Methode
Methoden werden ähnlich wie in Java definiert, können aber optional einen Rückgabetyp
haben
```
@ -94,7 +100,9 @@ haben
}
```
In Groovy können Methoden direkt ohne Klasse und main-Methode definiert und aufgerufen werden.
In Groovy können Methoden direkt ohne Klasse und main-Methode definiert und aufgerufen
werden.
Beispiel 1
```
@ -114,6 +122,7 @@ sum(5,2)
```
- Instanzmethoden
Methoden können Instanzmethoden sein und auf Instanzvariablen zugreifen.
```
class Method {
@ -146,8 +155,10 @@ class MathUtils {
```
- Dynamische Methoden
Groovy erlaubt es, Methoden zur Laufzeit hinzuzufügen.
In diesem Beispiel wird die Methode sayHello zur Klasse DynamicExample hinzugefügt, nachdem die Klasse bereits definiert wurde
In diesem Beispiel wird die Methode sayHello zur Klasse DynamicExample hinzugefügt, nachdem
die Klasse bereits definiert wurde
Beispiel
```
@ -161,7 +172,10 @@ example.sayHello()
```
- Expando
Ist eine spezielle Klassen in Groovy, die ermöglicht Objekten zur Laufzeit dynamisch Methoden und Eigenschaften hinzuzufügen. Dadurch ist die vorherige Deklaration der Felder in der Klasse nicht nötig
Ist eine spezielle Klassen in Groovy, die ermöglicht Objekten zur Laufzeit dynamisch
Methoden und Eigenschaften hinzuzufügen. Dadurch ist die vorherige Deklaration der Felder
in der Klasse nicht nötig
Beispiel
```
@ -179,6 +193,7 @@ expando.sayHello() // Ausgabe: Hello from Groovy
```
- Default-Parameterwerte
Methodenparameter können Standdardwerte haben(wie in Ruby)
Beispiel 1
@ -191,6 +206,7 @@ class Greeter {
```
Ruft man die Methode ohne Parameter auf, werden die Default-Paramter eingesetzt
Beispiel 2
```
def sum(int a=10, int b=3) {
@ -202,7 +218,10 @@ sum()
- Closures
Closures können auf Variablen aus ihrem umgebenden Gültigkeitsbereich zugreifen und diese „einfangen“. Dadurch können sie auf Werte zugreifen, die zum Zeitpunkt ihrer Erstellung existierten.
Closures können auf Variablen aus ihrem umgebenden Gültigkeitsbereich zugreifen und diese
„einfangen“. Dadurch können sie auf Werte zugreifen, die zum Zeitpunkt ihrer Erstellung
existierten.
1. Parameter
```
@ -251,8 +270,10 @@ println myList.collect { item -> item * 2 } // [2, 4, 6, 8, 10]
```
- Methodenverkettung
Durch das Rückgeben von this kann man Methodenaufrufe verketten.
Beispiel
```
class FluentPerson {
@ -273,8 +294,11 @@ class FluentPerson {
def person = new FluentPerson().setName("John").setAge(30)
```
- Mixin(Misching)
Man kann Funktionalität zu Klassen hinzufügen, ohne Vererbung zu verwenden, indem man Mixins verwendet.
Man kann Funktionalität zu Klassen hinzufügen, ohne Vererbung zu verwenden, indem man
Mixins verwendet.
Beispiel
```