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 是一个简单的方法,它由两个 println 语句组成,用于将一些文本输出到控制台。 在我们的静态 main 方法中,我们只是调用 DisplayName 方法。 上述方法的输出将是 −

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

方法参数

如果一种方法的行为由一个或多个参数的值决定,则该方法更普遍有用。 我们可以使用方法参数将值传递给被调用的方法。 请注意,参数名称必须彼此不同。

最简单的方法类型,参数如下所示 −

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

在这个例子中,我们创建了一个带有 2 个参数的 sum 方法,ab。 这两个参数都是 int 类型。 然后我们从 main 方法调用 sum 方法并将值传递给变量 ab

上述方法的输出将是值 15。


默认参数

Groovy 中还有一个规定可以为方法中的参数指定默认值。 如果没有将值传递给参数的方法,则使用默认值。 如果同时使用非默认参数和默认参数,则必须注意默认参数应定义在参数列表的末尾。

以下是带参数的简单方法示例 −

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

让我们看一下我们之前看过的相同示例,用于将两个数字相加,并创建一个具有一个默认参数和另一个非默认参数的方法 −

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

在这个例子中,我们创建了一个 sum 方法,它有两个参数 ab。 这两个参数都是 int 类型。 这个例子和上一个例子的不同之处在于,在这个例子中,我们将 b 的默认值指定为 5。所以当我们从 main 方法调用 sum 方法时,我们可以选择 传递一个值为 6 的值,这将分配给 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 方法,在上面的示例中,我们传递了 2 个值 6。第二个值 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));
   } 
}

在上面的示例中,请注意,这次我们为方法 sum 指定了 int 类型的返回类型。 在该方法中,我们使用 return 语句将总和值发送到调用主程序。 由于方法的值现在可用于 main 方法,因此我们使用 println 函数在控制台中显示该值。

上述方法的输出将是值 11。


实例方法

方法通常在 Groovy 中的类内部实现,就像 Java 语言一样。 类只不过是用于创建定义其属性和行为的不同对象的蓝图或模板。 类对象展示其类定义的属性和行为。 所以行为是通过在类内部创建方法来定义的。

我们将在后面的章节中更详细地看到类,但以下是类中方法实现的示例。 在我们之前的示例中,我们将方法定义为静态方法,这意味着我们可以直接从类中访问这些方法。 方法的下一个示例是实例方法,其中通过创建类的对象来访问方法。 我们将在后面的章节中再次看到类,现在我们将演示如何使用方法。

以下是如何实现方法的示例。

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

在上面的示例中,请注意,这次我们没有为类方法指定静态属性。 在我们的 main 函数中,我们实际上是在创建 Example 类的一个实例,然后调用"ex"对象的方法。

上述方法的输出将是值 100。


本地和外部参数名称

Groovy 像 java 一样提供了具有本地和全局参数的工具。 在下面的例子中,lx 是一个局部参数,它的作用域只在 getX() 的函数中,而 x 是一个全局属性,它可以在整个 Example 类中访问。 如果我们试图在 getX() 函数之外访问变量 lx,我们会得到一个错误。

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 的结果。