- Groovy 教程
- Groovy - 首页
- Groovy - 概述
- Groovy - 环境
- Groovy - 基本语法
- Groovy - 数据类型
- Groovy - 变量
- Groovy - 运算符
- Groovy - 循环
- Groovy - 决策制定
- Groovy - 方法
- Groovy - 文件I/O
- Groovy - 可选值
- Groovy - 数字
- Groovy - 字符串
- Groovy - 范围
- Groovy - 列表
- Groovy - 映射
- Groovy - 日期和时间
- Groovy - 正则表达式
- Groovy - 异常处理
- Groovy - 面向对象
- Groovy - 泛型
- Groovy - 特性
- Groovy - 闭包
- Groovy - 注解
- Groovy - XML
- Groovy - JMX
- Groovy - JSON
- Groovy - DSL
- Groovy - 数据库
- Groovy - 构造器
- Groovy - 命令行
- Groovy - 单元测试
- Groovy - 模板引擎
- Groovy - 元对象编程
- Groovy 有用资源
- Groovy - 快速指南
- Groovy - 有用资源
- Groovy - 讨论
Groovy - 方法
Groovy 中的方法可以使用返回类型定义,也可以使用def关键字定义。方法可以接收任意数量的参数。定义参数时,不必显式定义类型。可以添加诸如 public、private 和 protected 之类的修饰符。默认情况下,如果没有提供可见性修饰符,则该方法为 public。
最简单的方法类型是没有参数的方法,如下所示:
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 个参数 a 和 b 的 sum 方法。两个参数都是 int 类型。然后,我们从 main 方法调用 sum 方法并将值传递给变量 a 和 b。
上述方法的输出将是值 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); } }
在这个例子中,我们创建了一个带有两个参数 a 和 b 的 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 语句将 sum 值发送到调用 main 程序。由于方法的值现在可用于 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()); } }
在我们上面的示例中,请注意,这次我们没有为类方法指定静态属性。在我们的 main 函数中,我们实际上是创建了 Example 类的实例,然后调用了 'ex' 对象的方法。
上述方法的输出将是值 100。
局部参数和外部参数名称
与 Java 一样,Groovy 也提供了局部参数和全局参数的功能。在下面的示例中,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。