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 个参数ab的 sum 方法。两个参数都是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); 
       } 
    }
    
    在此示例中,我们创建了一个带有两个参数ab的 sum 方法。两个参数都是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()); 
       } 
    }
    
    在我们上面的例子中,请注意这次我们没有为我们的类方法指定静态属性。在我们的主要功能中,我们实际上是在创建 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 的结果。