Groovy - Methoden

Eine Methode ist in Groovy mit einem Rückgabetyp oder mit dem definiert defStichwort. Methoden können beliebig viele Argumente empfangen. Es ist nicht erforderlich, dass die Typen beim Definieren der Argumente explizit definiert werden. Modifikatoren wie öffentlich, privat und geschützt können hinzugefügt werden. Wenn kein Sichtbarkeitsmodifikator angegeben ist, ist die Methode standardmäßig öffentlich.

Der einfachste Typ einer Methode ist eine ohne Parameter wie der unten gezeigte -

def methodName() { 
   //Method code 
}

Das Folgende ist ein Beispiel für eine einfache Methode

class Example {
   static def DisplayName() {
      println("This is how methods work in groovy");
      println("This is an example of a simple method");
   } 
	
   static void main(String[] args) {
      DisplayName();
   } 
}

Im obigen Beispiel ist DisplayName eine einfache Methode, die aus zwei println-Anweisungen besteht, mit denen Text an die Konsole ausgegeben wird. In unserer statischen Hauptmethode rufen wir nur die DisplayName-Methode auf. Die Ausgabe der obigen Methode wäre -

This is how methods work in groovy 
This is an example of a simple method

Methodenparameter

Eine Methode ist allgemeiner nützlich, wenn ihr Verhalten durch den Wert eines oder mehrerer Parameter bestimmt wird. Wir können Werte mithilfe von Methodenparametern auf die aufgerufene Methode übertragen. Beachten Sie, dass sich die Parameternamen voneinander unterscheiden müssen.

Der einfachste Typ einer Methode mit Parametern wie dem unten gezeigten -

def methodName(parameter1, parameter2, parameter3) { 
   // Method code goes here 
}

Das Folgende ist ein Beispiel für eine einfache Methode mit Parametern

class Example {
   static void sum(int a,int b) {
      int c = a+b;
      println(c);
   }  
	
   static void main(String[] args) {
      sum(10,5);
   } 
}

In diesem Beispiel erstellen wir eine Summenmethode mit 2 Parametern. a und b. Beide Parameter sind vom Typint. Wir rufen dann die Summenmethode von unserer Hauptmethode auf und übergeben die Werte an die Variablena und b.

Die Ausgabe des obigen Verfahrens wäre der Wert 15.

Standardparameter

In Groovy ist auch vorgesehen, Standardwerte für Parameter innerhalb von Methoden anzugeben. Wenn für die Parameter keine Werte an die Methode übergeben werden, werden die Standardwerte verwendet. Wenn sowohl nicht standardmäßige als auch Standardparameter verwendet werden, muss beachtet werden, dass die Standardparameter am Ende der Parameterliste definiert werden sollten.

Das Folgende ist ein Beispiel für eine einfache Methode mit Parametern -

def someMethod(parameter1, parameter2 = 0, parameter3 = 0) { 
   // Method code goes here 
}

Schauen wir uns dasselbe Beispiel an, das wir zuvor für das Hinzufügen von zwei Zahlen betrachtet haben, und erstellen Sie eine Methode, die einen Standard- und einen anderen Nicht-Standardparameter enthält.

class Example { 
   static void sum(int a,int b = 5) { 
      int c = a+b; 
      println(c); 
   } 
	
   static void main(String[] args) {
      sum(6); 
   } 
}

In diesem Beispiel erstellen wir eine Summenmethode mit zwei Parametern: a und b. Beide Parameter sind vom Typ int. Der Unterschied zwischen diesem Beispiel und dem vorherigen Beispiel besteht darin, dass wir in diesem Fall einen Standardwert für angebenb as 5. Wenn wir also die Summenmethode von unserer Hauptmethode aus aufrufen, haben wir die Möglichkeit, nur einen Wert zu übergeben, der 6 ist, und dieser wird dem Parameter zugewiesen a innerhalb des sum Methode.

Die Ausgabe des obigen Verfahrens wäre der Wert 11.

class Example {
   static void sum(int a,int b = 5) {
      int c = a+b;
      println(c);
   } 
	
   static void main(String[] args) {
      sum(6,6);
   } 
}

Wir können die Summenmethode auch aufrufen, indem wir 2 Werte übergeben. In unserem obigen Beispiel übergeben wir 2 Werte von 6. Der zweite Wert von 6 ersetzt tatsächlich den Standardwert, der dem Parameter zugewiesen ist b.

Die Ausgabe des obigen Verfahrens wäre der Wert 12.

Methodenrückgabewerte

Methoden können auch Werte an das aufrufende Programm zurückgeben. Dies ist in der modernen Programmiersprache erforderlich, in der eine Methode eine Art Berechnung durchführt und dann den gewünschten Wert an die aufrufende Methode zurückgibt.

Es folgt ein Beispiel für eine einfache Methode mit einem Rückgabewert.

class Example {
   static int sum(int a,int b = 5) {
      int c = a+b;
      return c;
   } 
	
   static void main(String[] args) {
      println(sum(6));
   } 
}

Beachten Sie in unserem obigen Beispiel, dass wir diesmal einen Rückgabetyp für unsere Methodensumme angeben, der vom Typ int ist. In der Methode verwenden wir die return-Anweisung, um den Summenwert an das aufrufende Hauptprogramm zu senden. Da der Wert der Methode jetzt für die Hauptmethode verfügbar ist, verwenden wir dieprintln Funktion zur Anzeige des Wertes in der Konsole.

Die Ausgabe des obigen Verfahrens wäre der Wert 11.

Instanzmethoden

Methoden werden normalerweise in Klassen in Groovy implementiert, genau wie die Java-Sprache. Eine Klasse ist nichts anderes als eine Blaupause oder eine Vorlage zum Erstellen verschiedener Objekte, die ihre Eigenschaften und Verhaltensweisen definiert. Die Klassenobjekte weisen die von ihrer Klasse definierten Eigenschaften und Verhaltensweisen auf. Das Verhalten wird also durch Erstellen von Methoden innerhalb der Klasse definiert.

Wir werden Klassen in einem späteren Kapitel genauer sehen, aber das Folgende ist ein Beispiel für eine Methodenimplementierung in einer Klasse. In unseren vorherigen Beispielen haben wir unsere Methode als statische Methoden definiert, sodass wir direkt von der Klasse aus auf diese Methoden zugreifen können. Das nächste Beispiel für Methoden sind Instanzmethoden, bei denen auf die Methoden zugegriffen wird, indem Objekte der Klasse erstellt werden. In einem späteren Kapitel werden wir wieder Klassen sehen. Im Moment werden wir zeigen, wie man Methoden verwendet.

Im Folgenden finden Sie ein Beispiel dafür, wie Methoden implementiert werden können.

class Example { 
   int x; 
	
   public int getX() { 
      return x; 
   } 
	
   public void setX(int pX) { 
      x = pX; 
   } 
	
   static void main(String[] args) { 
      Example ex = new Example(); 
      ex.setX(100); 
      println(ex.getX()); 
   } 
}

Beachten Sie in unserem obigen Beispiel, dass wir diesmal kein statisches Attribut für unsere Klassenmethoden angeben. In unserer Hauptfunktion erstellen wir tatsächlich eine Instanz der Example-Klasse und rufen dann die Methode des 'ex'-Objekts auf.

Die Ausgabe des obigen Verfahrens wäre der Wert 100.

Lokale und externe Parameternamen

Groovy bietet genau wie Java die Möglichkeit, lokale und globale Parameter zu haben. Im folgenden Beispiellx ist ein lokaler Parameter, der nur innerhalb der Funktion von einen Gültigkeitsbereich hat getX() und xist eine globale Eigenschaft, auf die innerhalb der gesamten Example-Klasse zugegriffen werden kann. Wenn wir versuchen, auf die Variable zuzugreifenlx außerhalb der getX() Funktion erhalten wir eine Fehlermeldung.

class Example { 
   static int x = 100; 
	
   public static int getX() { 
      int lx = 200; 
      println(lx); 
      return x; 
   } 
	
   static void main(String[] args) { 
      println(getX()); 
   }  
}

Wenn wir das obige Programm ausführen, erhalten wir das folgende Ergebnis.

200 
100

diese Methode für Eigenschaften

Genau wie in Java kann groovy über das auf seine Instanzmitglieder zugreifen thisStichwort. Das folgende Beispiel zeigt, wie wir die Anweisung verwendenthis.x, bezieht sich auf seine Instanz und legt den Wert von fest x entsprechend.

class Example { 
   int x = 100; 
	
   public int getX() { 
      this.x = 200; 
      return x; 
   } 
	
   static void main(String[] args) {
      Example ex = new Example(); 
      println(ex.getX());
   }
}

Wenn wir das obige Programm ausführen, wird das Ergebnis von 200 auf der Konsole gedruckt.