方法(Methods)
Groovy中的方法定义为返回类型或def关键字。 方法可以接收任意数量的参数。 在定义参数时,没有必要明确定义类型。 可以添加公共,私有和受保护的修饰符。 默认情况下,如果未提供可见性修饰符,则该方法为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的求和方法。 这两个参数都是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的求和方法。 这两个参数都是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方法,因此我们使用println函数在控制台中显示该值。
上述方法的输出值为11。
实例方法 (Instance methods)/h2>
方法通常在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 {
static int x = 100;
public static int getX() {
int lx = 200;
println(lx);
return x;
}
static void main(String[] args) {
println(getX());
}
}
当我们运行上述程序时,我们将得到以下结果。
200
100
这个方法适用于Properties
就像在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的结果。