Groovy-methods

提供:Dev Guides
移動先:案内検索

Groovy-メソッド

Groovyにあるメソッドは、戻り値の型または def キーワードで定義されます。 メソッドは、任意の数の引数を受け取ることができます。 引数を定義するときに型を明示的に定義する必要はありません。 public、private、protectedなどの修飾子を追加できます。 デフォルトでは、可視性修飾子が提供されていない場合、メソッドはパブリックです。

メソッドの最も単純なタイプは、以下に示すようにパラメータなしのものです-

def methodName() {
  //Method code
}

以下は簡単な方法の例です

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();
   }
}

上記の例では、DisplayNameは、テキストをコンソールに出力するために使用される2つのprintlnステートメントで構成される単純なメソッドです。 静的mainメソッドでは、DisplayNameメソッドを呼び出しています。 上記の方法の出力は次のようになります-

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

メソッドのパラメーター

メソッドは、その動作が1つ以上のパラメーターの値によって決定される場合、より一般的に役立ちます。 メソッドパラメータを使用して、呼び出されたメソッドに値を転送できます。 パラメーター名は互いに異なる必要があることに注意してください。

以下に示すようなパラメータを持つメソッドの最も単純なタイプ-

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

以下は、パラメーターを使用した単純なメソッドの例です

class Example {
   static void sum(int a,int b) {
      int c = a+b;
      println(c);
   }

   static void main(String[] args) {
      sum(10,5);
   }
}

この例では、 ab の2つのパラメーターを持つsumメソッドを作成しています。 両方のパラメーターは int タイプです。 次に、メインメソッドからsumメソッドを呼び出し、変数 a および b に値を渡します。

上記のメソッドの出力は値15になります。

デフォルトパラメータ

Groovyには、メソッド内のパラメーターのデフォルト値を指定する規定もあります。 パラメータのメソッドに値が渡されない場合、デフォルトの値が使用されます。 デフォルト以外のパラメータとデフォルトのパラメータの両方を使用する場合、デフォルトのパラメータはパラメータリストの最後に定義する必要があることに注意する必要があります。

以下は、パラメータを使用した簡単な方法の例です-

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

2つの数字の追加について前に見たのと同じ例を見てみましょう、1つのデフォルトと別の非デフォルトパラメータを持つメソッドを作成します-

class Example {
   static void sum(int a,int b = 5) {
      int c = a+b;
      println(c);
   }

   static void main(String[] args) {
      sum(6);
   }
}

この例では、 ab の2つのパラメーターを持つsumメソッドを作成しています。 両方のパラメーターはint型です。 この例と前の例の違いは、この場合、 b のデフォルト値を5に指定していることです。 したがって、メインメソッドからsumメソッドを呼び出すとき、6という1つの値を渡すだけのオプションがあり、これは sum メソッド内のパラメーター a に割り当てられます。

上記のメソッドの出力は値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);
   }
}

2つの値を渡すことでsumメソッドを呼び出すこともできます。上記の例では、6つの2つの値を渡します。 2番目の値6は、実際にはパラメーター b に割り当てられているデフォルト値を置き換えます。

上記のメソッドの出力は値12になります。

メソッドの戻り値

メソッドは、呼び出し元プログラムに値を返すこともできます。 これは、メソッドが何らかの計算を実行し、呼び出し元のメソッドに目的の値を返す現代のプログラミング言語で必要です。

以下は、戻り値を持つ単純なメソッドの例です。

class Example {
   static int sum(int a,int b = 5) {
      int c = a+b;
      return c;
   }

   static void main(String[] args) {
      println(sum(6));
   }
}

上記の例では、今回はint型であるメソッドsumの戻り値の型を指定していることに注意してください。 このメソッドでは、returnステートメントを使用して、呼び出し側のメインプログラムに合計値を送信しています。 メソッドの値がmainメソッドで使用できるようになったため、 println 関数を使用してコンソールに値を表示しています。

上記のメソッドの出力は値11になります。

インスタンスメソッド

メソッドは通常、Java言語と同様にGroovy内のクラス内に実装されます。 クラスは、プロパティと動作を定義するさまざまなオブジェクトを作成するための設計図またはテンプレートにすぎません。 クラスオブジェクトは、そのクラスによって定義されたプロパティと動作を示します。 そのため、動作はクラス内にメソッドを作成することで定義されます。

クラスの詳細については、後の章で説明しますが、クラスのメソッド実装の例を次に示します。 前の例では、メソッドを静的メソッドとして定義しました。つまり、クラスから直接これらのメソッドにアクセスできます。 メソッドの次の例は、クラスのオブジェクトを作成することでメソッドにアクセスするインスタンスメソッドです。 再び、後の章でクラスを見ることになりますが、今はメソッドの使用方法を示します。

以下は、メソッドの実装方法の例です。

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());
   }
}

上記の例では、今回はクラスメソッドに静的属性を指定していないことに注意してください。 メイン関数では、実際にExampleクラスのインスタンスを作成してから、「ex」オブジェクトのメソッドを呼び出しています。

上記のメソッドの出力は値100です。

ローカルおよび外部パラメーター名

Groovyは、ローカルパラメータとグローバルパラメータを持つjavaのような機能を提供します。 次の例では、 lx は* getX()の関数内にのみスコープを持つローカルパラメータであり、 *x はExampleクラス全体内でアクセスできるグローバルプロパティです。 * getX()関数の外部の変数 *lx にアクセスしようとすると、エラーが発生します。

class Example {
   static int x = 100;

   public static int getX() {
      int lx = 200;
      println(lx);
      return x;
   }

   static void main(String[] args) {
      println(getX());
   }
}

上記のプログラムを実行すると、次の結果が得られます。

200
100

プロパティのこのメソッド

Javaと同様に、groovyは this キーワードを使用してインスタンスメンバーにアクセスできます。 次の例は、ステートメント this.x を使用するときに、インスタンスを参照し、それに応じて x の値を設定する方法を示しています。

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());
   }
}

上記のプログラムを実行すると、コンソールに200の結果が出力されます。