课程表

Groovy课程

工具箱
速查手册

Groovy 方法

当前位置:免费教程 » Java相关 » Groovy

Groovy中的方法是使用返回类型或使用def关键字定义的。方法可以接收任意数量的参数。定义参数时,不必显式定义类型。可以添加修饰符,如public,private和protected。默认情况下,如果未提供可见性修饰符,则该方法为public。

最简单的方法是没有参数的方法,如下所示:

  1. def methodName() {
  2. //Method code
  3. }

下面是一个简单方法的例子

  1. class Example {
  2. static def DisplayName() {
  3. println("This is how methods work in groovy");
  4. println("This is an example of a simple method");
  5. }
  6. static void main(String[] args) {
  7. DisplayName();
  8. }
  9. }

在线运行实例

在上面的例子中,DisplayName是一个简单的方法,它由两个println语句组成,用于向控制台输出一些文本。在我们的静态main方法中,我们只是调用DisplayName方法。上述方法的输出将是 -

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

方法参数

如果一个方法的行为由一个或多个参数的值确定,则它通常是有用的。我们可以使用方法参数将值传递给被调用的方法。请注意,参数名称必须彼此不同。

使用参数的最简单的方法类型如下所示 ?

  1. def methodName(parameter1, parameter2, parameter3) {
  2. // Method code goes here
  3. }

以下是使用参数的简单方法的示例

  1. class Example {
  2. static void sum(int a,int b) {
  3. int c = a+b;
  4. println(c);
  5. }
  6. static void main(String[] args) {
  7. sum(10,5);
  8. }
  9. }

在线运行实例

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

然后我们从我们的main方法中调用sum方法,并将值传递给变量a和b。

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

默认参数

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

以下是使用参数的简单方法的示例 -

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

让我们看看我们之前看到的添加两个数字的相同示例,并创建一个具有一个默认和另一个非默认参数的方法 -

  1. class Example {
  2. static void sum(int a,int b = 5) {
  3. int c = a+b;
  4. println(c);
  5. }
  6. static void main(String[] args) {
  7. sum(6);
  8. }
  9. }

在线运行实例

在这个例子中,我们创建一个具有两个参数a和b的sum方法。两个参数都是int类型。此示例和上一个示例的区别在于,在这种情况下,我们将b的默认值指定为5。
因此,当我们从main方法中调用sum方法时,我们可以选择只传递一个值为6的值,并将其分配给sum方法中的参数a。

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

  1. class Example {
  2. static void sum(int a,int b = 5) {
  3. int c = a+b;
  4. println(c);
  5. }
  6. static void main(String[] args) {
  7. sum(6,6);
  8. }
  9. }

在线运行实例

我们也可以通过传递2个值来调用sum方法,在上面的例子中,我们传递2个值6.第二个值6实际上将替换分配给参数b的默认值。

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

方法返回值

方法也可以将值返回到调用程序。 这在现在编程语言中是必需的,其中方法执行某种计算,然后将所需值返回到调用方法。

下面是一个带有返回值的简单方法的例子。

  1. class Example {
  2. static void sum(int a,int b = 5) {
  3. int c = a+b;
  4. println(c);
  5. }
  6. static void main(String[] args) {
  7. println(sum(6));
  8. }
  9. }

在线运行实例

在我们上面的例子中,注意这次我们为我们的方法sum指定一个类型为int的返回类型。 在方法中,我们使用return语句将sum值发送到调用主程序。 由于方法的值现在可用于main方法,因此我们使用println函数在控制台中显示该值。在前面的例子中,我们将我们的方法定义为静态方法,这意味着我们可以直接从类中访问这些方法。方法的下一个示例是实例方法,其中通过创建类的对象来访问方法。我们将在后面的章节中看到类,现在我们将演示如何使用方法。

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

实例方法

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

我们将在后面的章节中更详细地看到类,下面是类中方法实现的例子。

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

  1. class Example {
  2. int x;
  3. public int getX() {
  4. return x;
  5. }
  6. public void setX(int pX) {
  7. x = pX;
  8. }
  9. static void main(String[] args) {
  10. Example ex = new Example();
  11. ex.setX(100);
  12. println(ex.getX());
  13. }
  14. }

在线运行实例

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

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

本地和外部参数名称

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

  1. class Example {
  2. static int x = 100;
  3. public static int getX() {
  4. int lx = 200;
  5. println(lx);
  6. return x;
  7. }
  8. static void main(String[] args) {
  9. println getX()
  10. }
  11. }

在线运行实例

当我们运行上面的程序,我们会得到以下结果。

  1. 200
  2. 100

方法属性

就像在Java中一样,groovy可以使用this关键字访问它的实例成员。以下示例显示了当我们使用语句this.x时,它引用其实例并相应地设置x的值。

  1. class Example {
  2. int x = 100;
  3. public int getX() {
  4. this.x = 200;
  5. return x;
  6. }
  7. static void main(String[] args) {
  8. Example ex = new Example();
  9. println(ex.getX());
  10. }
  11. }

在线运行实例

当我们运行上面的程序,我们将得到200的结果打印在控制台上。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号