这篇来学习方法,这个太重要了,每天写代码都是写在方法里。方法是任何编程语言的核心,就是处理一个特定需求的过程,都可以写到一个或者几个方法中。有些编程语言叫函数,Java这边习惯叫方法。

1.什么是方法

简单来说方法就是一个代码块,这个代码块有名称,可以有参数,然后提供给别的代码调用,有时候有返回值,谁调用方法,方法就把返回值给谁。

1)一个有名称的代码块
2)是代码模块化和可复用
3)支持传入参数
4)可以有返回类型

下面写一个打印Hello Groovy的方法,没有返回值。

package com.anthony.test

def myPrint() {
	println "Hello Groovy"
}

myPrint()

如果不写myPrint(), 你是无法通过 Run as Groovy script来运行这个方法。不写就表示这个方法在这里,但是没有任何代码去调用,所以没有触发打印语句。这个方法没有返回值,这只是一个打印消息的功能。

 

2.带参数的方法

很多方法都是有参数,不然就没有意义,什么都写死就是硬编码,参数从一个到七八个的都很常见,在编程中。

package com.anthony.test

def sum(int a, int b) {
	println "sum is " + (a + b)
}

sum(3, 5)

 

3.带返回值的方法

package com.anthony.test

def sum(int a, int b) {
	return (a + b)
}

int result = sum(3, 5)
println result

如果有返回值,记住这句话,谁调用我,我就给谁返回。最好要区分下返回值类型,例如数组和List还是有区别,方便后续的遍历操作,我们最好定义一个和返回值类型一样的数据类型去接受方法的返回值。

 

4.方法的初始化

方法大部分是保存在Class文件中类中,在使用方法之前,我们必须要初始化这个类的对象,然后通过对象点方法名的方式去调用方法,这个就是成员方法被调用所需要的步骤,静态方法就可以直接通过类名调用。

在一个Class中(MethodDemo.groovy)写入以下代码

package com.anthony.test

class MethodDemo {
	
	static void main(args) {
		MethodDemo md = new MethodDemo()
		def int result = md.myMethod(5, 8)
		println result
	}
	
	def myMethod(int a, int b) {
		return (a+b)
	}
}

通过Run as Java Application运行代码。在main方法中就是先初始化本类的一个类对象,然后才能调用成员方法。

 

5.方法参数是一个Map的如何调用

举例一个开发中方法的参数经常写成Map的场景。

package com.anthony.test

class MethodDemo {
	
	static void main(args) {
		MethodDemo md = new MethodDemo()
		def name = "Anthony"
		def age = 18
		def gender = "Men"
		def city = "Beijing"
		md.printPersonInfo(name:name, age:age, gender:gender, city:city)
	}
	
	def myMethod(int a, int b) {
		return (a+b)
	}
	
	def printPersonInfo(Map args) {
		def name = args.name
		def age = args.age
		def gender = args.gender
		def city = args.city
		
		def personInfo = """
		${name} is from ${city},
		he is ${age} old, his gender is ${gender}
		"""
		println personInfo
		
	}
}

通过Run as Java Application

Anthony is from Beijing,
he is 18 old, his gender is Men