1.方法:
在程序中封装特殊功能的代码块
好处:
1.提高代码的复用性,从而提高开发效率
2.降低代码的耦合性
耦合性:在程序中代码片段与代码片段之间的关联性,关联性越大,耦合性越大,程序越不好
特点:
1.方法的核心特点:不调用不执行
2.方法调用过程中核心动作:传递参数和返回结果
传递参数:
背景:自定义方法无法直接使用调用者方法中数据
含义:调用者方法向自定义方法进行参数传递的过程(调用者方法===>自定义方法)
特点:将调用者方法中的数据值或地址值传递给自定义方法
参数:
形式参数:声明方法时()中的参数,简称"形参",是变量的声明格式
实际参数:调用方法时()中的参数,简称"实参",是具体的数据值或地址值
返回结果:
背景:调用者方法无法直接使用自定义方法中的数据
含义:自定义方法向调用者方法返回结果的过程(自定义方法===>调用者方法)
3.方法声明的位置,在类中代码块外
4.调用方法时必须做到数据的类型和个数一一对应
方法声明的格式:
修饰符 返回类型 方法名(形参类型1 形参名1,形参类型2 形参名2 ……){
方法体语句;
return 返回值;
}
解释:
修饰符:暂不讲解
返回类型:返回值的数据类型
方法名:方法的名字,见名知意
():形参列表
方法体语句:抽取以前写在main方法中的代码片段
return:控制语句;
(1)结束方法
(2)如果后面有返回值,在结束方法的同时将返回值返回给调用方法
返回值:方法的结果数据
声明方法前两个明确:
返回值类型:
明确方法结果数据的数据类型
形参列表:
明确自定义方法所需参数个数及其数据类型
方法的调用
调用同一个类的方法:
单独调用(直接调用)
方法名(实参)
输出调用(打印调用)
System.out.println(方法名(实参))
赋值调用
数据类型 变量名= 方法名(实参)
void关键字
方法没有返回值
作用:当方法没有返回值的时候,返回值类型的位置也不能空着,需要使用void关键字进行占位
注意:1.当返回值类型为void时,调用方式只能使用单独调用
2.当方法的返回值类型不是void时,调用方式推荐使用赋值调用
3.当方法的返回值类型为void时,方法中方法体最后的return可以不写
方法的重载
在同一个类中(或者子父类继承关系中),出现了方法名相同,形参列表不同的现象
前提条件:
1.必须在同一个类中
2.方法名必须相同
3.参数列表必须不同(至少要满足以下一种)
1)形参的数量不同
2)形参的数据类型不同
3)形参的数据类型顺序不同
注意事项:调用重载的方法,具体执行哪一个,需要根据实参的数据类型和个数进行匹配
方法的递归
方法自身调用该自身的现象
分类:
直接递归
例如:在a方法中调用a方法
间接递归:
例如:在a方法中调用b方法,在b方法中调用c方法,在c方法中调用a方法
注意:
1.方法的递归在某种程度上可以理解为循环
2.在使用递归的时候,需要给递归添加限定条件,防止"栈内存溢出"
3.即使给递归增加限定条件,也不能让递归层数太多,否则会发生"栈内存溢出"
好处:
在某些特定的场景中,无法使用while和for循环进行遍历,可以使用递归轻松解决这一问题
例如:多层文件夹的遍历
弊端:1.可能会发生栈内存溢出
2.递归会导致方法调用次数增多,方法调用次数越多,程序执行效率越低