一.方法的定义
方法就是一个代码片段
1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
2. 做到代码被重复使用, 一份代码可以在多个位置使用.
3. 让代码更好理解更简单.
二.定义语法
public static 方法返回值 方法名称(定义参数形参){
方法体代码
return
}
方法的放回值可有可无,如果没有返回值就用 void声明
依然可以使用return来表示提前结束方法的调用
示例代码:
这里的返回值是一个整数,所以用int;
add为方法名称
三.方法的调用和执行过程
示例代码
1.调用
方法定义时的参数称为 "形参", 方法调用时的参数称为 "实参";
返回值变量 = 方法名称(参数) 如图第四行
将实参调用给形参
2.执行过程
1)定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行。
2)当方法被调用的时候, 会将实参赋值给形参。
3)参数传递完毕后, 就会执行到方法体代码。
4)当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行。
5)一个方法可以被多次调用。
如上实例 当进行到 int sum = add(n)时开始调用方法add,直至遇到return语句,
回到这里继续执行代码。
*实参和形参:在Java中,方法的参数传递只有值传递,就是把实参的值拷贝一份给形参,带实参不产生影响
四,方法的重载
当我们需要用一个函数同时兼容多种参数的情况, 我们就可以使用到方法重载
方法重载发生在同一个类中,方法名相同,只是参数的个数或者类型不同;方法的返回值类型不影响重载’
示例代码:
五.方法的递归
1.使用递归的条件
1)一个大问题可以拆分成诺干个子问题的解
2)拆分后的子问题和原问题除了数据规模不同,解决思路完全相同
3)必须存在递归的终止条件
2.递归的概念
方法在执行过程中调用自身, 就称为 "递归"
递归分为两个过程
递函数:函数不断调用自己的过程,直到遇到return语句,成为递过程
归函数:函数不断返回的过程称为归过程
3.递归执行过程分析
求n个数和
当 n = 1 时return值为1
当 n > 1 时return值为 n+add(n-1),
方法调用时程序会卡在方法的调用处,直到方法返回后继续运行
这时程序会停下来,计算add(n-1)的值,add(n-1)代表将n-1再次执行方法add;
add(n-1)再次进入这个方法,return值为(n-1)+add(n-2),add(n-2)代表(n-2)再次执行方法add;
·············
add(n-(n-2))进入方法时,return值为(n-(n-2))+add(n-(n-1))
add(n-(n-1))进入方法时,因为(n-(n-1))=1,所以此时return值为1
以上为递过程
add(n-(n-1))=1,可得到add(n-(n-2))的return值为(n-(n-2))+(n-(n-1))
·············
add(n-2)return值为n-2+n-3+······+2+1
add(n-1)return值为n-1+n-2+······+2+1
这个方法的return值为n+n-1+n-2+······+2+1
这个过程称为归过程