## 七方法
如何定义Java中的方法所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。一般情况下,定
义一个方法的语法是:
![](https://box.kancloud.cn/2016-02-22_56cab560e01ab.jpg)
其中:
1访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private甚至可以省略 ,其中public表示
该方法可以被其他任何代码调用。
2返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为void;如果方法具有返回值,则
需要指定返回值的类型,并且在方法体中使用return语句返回值。
3方法名:定义的方法的名字,必须使用合法的标识符。
4参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名
组成,以空格隔开。
根据方法是否带参、是否带返回值,可将方法分为四类:
1)无参无返回值方法;
2)无参带返回值方法;
3)带参无返回值方法;
4)带参带返回值方法;
(1)无参无返回值方法的使用
如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。
方法的使用分两步:
第一步,定义方法
例如:下面代码定义了一个方法名为show,没有参数,且没有返回值的方法,执行的操作为输出"welcome to
imooc."
![](https://box.kancloud.cn/2016-02-22_56cab560f2078.jpg)
需要注意的事项有:
1方法体放在一对大括号中,实现特定的操作。
2方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母
大写的形式。
第二步,调用方法
当需要调用方法执行某个操作时,可以先创建类的对象,然后通过对象名.方法名()来实现。
例如:在下面的代码中,我们创建了一个名为 hello 的对象,然后通过调用该对象的show( )方法输出信息。
![](https://box.kancloud.cn/2016-02-22_56cab5610e818.jpg)
运行结果为:welcome to imooc.
(2)无参带返回值方法的使用
如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。
例如:下面的代码,定义了一个方法名为calSum,无参数,但返回值为int类型的方法,执行的操作为计算两数之
和,并返回结果。
![](https://box.kancloud.cn/2016-02-22_56cab56124f31.jpg)
在calSum( )方法中,返回值类型为int类型,因此在方法体中必须使用return返回一个整数值。
调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其
返回值并进行处理。如:
![](https://box.kancloud.cn/2016-02-22_56cab56137bc8.jpg)
运行结果为: 两数之和为:17
需要注意的事项有:
1如果方法的返回类型为void ,则方法中不能使用return返回值。
![](https://box.kancloud.cn/2016-02-22_56cab56152fe8.jpg)
2方法的返回值最多只能有一个,不能返回多个值。
![](https://box.kancloud.cn/2016-02-22_56cab5616132d.jpg)
3方法返回值的类型必须兼容,例如,如果返回值类型为int ,则不能返回String型值。
![](https://box.kancloud.cn/2016-02-22_56cab561714a2.jpg)
(3)带参无返回值方法的使用
有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息行。
我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据。
我们先来看一个带参数,但没有返回值的方法:
![](https://box.kancloud.cn/2016-02-22_56cab56182cc1.jpg)
上面的代码定义了一个show方法,带有一个参数name,实现输出欢迎消息。
调用带参方法与调用无参方法的语法类似,但在调用时必须传入实际的参数值。
![](https://box.kancloud.cn/2016-02-22_56cab5619985f.jpg)
例如:
![](https://box.kancloud.cn/2016-02-22_56cab561aa6fa.jpg)
运行结果为: 欢迎您,爱慕课!
很多时候,我们把定义方法时的参数称为形参,目的是用来定义方法需要传入的参数的个数和类型;把调用方法
时的参数称为实参,是传递给方法真正被处理的值。
需要注意的事项有:
1调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应。
![](https://box.kancloud.cn/2016-02-22_56cab561bedba.jpg)
2调用方法时,实参不需要指定数据类型,如
![](https://box.kancloud.cn/2016-02-22_56cab561d35cf.jpg)
3方法的参数可以是基本数据类型,如 int、double等,也可以是引用数据类型,如String、数组等。
![](https://box.kancloud.cn/2016-02-22_56cab561e156b.jpg)
4当方法参数有多个时,多个参数间以逗号分隔。
![](https://box.kancloud.cn/2016-02-22_56cab56206612.jpg)
(4)带参带返回值方法的使用
如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法。
例如:下面的代码,定义了一个show方法,带有一个参数name,方法执行后返回一个String 类型的结果。
![](https://box.kancloud.cn/2016-02-22_56cab562172ab.jpg)
调用带参带返回值的方法:
![](https://box.kancloud.cn/2016-02-22_56cab56227b40.jpg)
运行结果为: 欢迎您,爱慕课!
(5)Java中方法的重载
如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重
载,也可称该方法被重载了。如下所示4个方法名称都为show ,但方法的参数有所不同,因此都属于方法的重载:
![](https://box.kancloud.cn/2016-02-22_56cab56239109.jpg)
当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将
被执行。如:
![](https://box.kancloud.cn/2016-02-22_56cab5624e0ef.jpg)
运行结果:
![](https://box.kancloud.cn/2016-02-22_56cab56262d77.jpg)
判断方法重载的依据:
1必须是在同一个类中;
2方法名相同;
3方法参数的个数、顺序或类型不同;
4与方法的修饰符或返回值没有关系;