一、方法的基本用法
1.1什么是方法
就是一个代码片段. 类似于 C 语言中的 "函数"方法
方法存在的意义
(
不要背
,
重在体会
):
1.
是能够模块化的组织代码
(
当代码规模比较复杂的时候
).
2.
做到代码被重复使用
,
一份代码可以在多个位置使用
.
3.
让代码更好理解更简单
.
4.
直接调用现有方法开发
,
不必重复造轮子
1.2语法定义及调用过程
①语法结构:
public static 方法返回值 方法名称(形式参数列表){
方法体代码;
return 返回值;
}
②方法的调用
返回值变量 = 方法名(实参);
※注意事项:
① 方法名(函数名)命名用 小驼峰
② 代码的运行都从主函数为入口,但函数的位置没有要求不论在主函数上面还是下面都可以。
③注意返回值类型需要与定义方法是的类型保持一致
④函数开辟的内存——》栈帧
每个函数在调运的时候都会开辟栈帧,属于这个函数的内存
⑤
方法定义时
,
返回值也可以没有
,
如果没有返回值
,
则返回值类型应写成
void
没有返回值也可以用return,表示提前终止方法的调用。
⑥一个方法(函数)可被多次调用使用
示例:计算前五个数的阶乘之和!
二、方法的重载overload
2.1方法重载的规则
①方法名相同
②方法的参数不同
(
参数个数或者参数类型
)
③方法的返回值类型不影响重载
④可以不是在同一个类中,继承关系中也可以
三、递归
3.1递归的定义及使用条件
定义:一个方法在执行过程中调用自身, 就称为 "递归"
类比数学归纳法:
例如,
我们求
N!
起始条件
: N = 1
的时候
, N!
为
1.
这个起始条件相当于递归的结束条件
.
递归公式
:
求
N! ,
直接不好求
,
可以把问题转换成
N! => N * (N-1)!
使用条件:①一个大问题可以拆分成多个小问题
②拆分后的问题除了数据规模不同,解决方法完全相同
③要有终止条件
※递归的核心在于推导出解决问题的那个公式
3.2递归的执行过程
示例:计算5的阶乘:
※ 注意事项:
①在写递归函数时,不要纠结函数内部到底怎么实现的,重点是理解其语义(这个函数是什么功能),就理解为这个方法别人已经写好了我只是调用而已
递归示例:
①传入一个任意的正整数num,我就能按照高位到低位顺序打印每一位的数字