方法
类比是一种带有某种功能(实现某种逻辑)的工具
- 方法的声明
方法名:建议小写字母开头,如果有多个单词其余单词首字母大写
驼峰原则: studentManager001
参数列表:多个参数之间使用”,“分隔
返回值: 必须与设定的返回值类型”一致“
如果方法不需要返回任何数据,设置void不需写return
访问权限修饰符 [限定修饰符] 返回值类型 方法名(参数列表){
…
return 返回值
}
public static int add(int a, int b){
int c = a + b;
return c;
}
-
方法的调用
通过 ”方法名(提供参数)“调用方法执行方法的逻辑
如果方法有返回值,需要利用一个同类型的变量进行接收
如果方法没有返回值,不需变量接收,直接调用即可 -
方法的参数(形式参数和实际参数)
形式参数:形参,声明方法时,参数列表中的变量
实际参数:实参,调用方法时,提供给方法的实际数据 -
方法的重载(重要)
将一个同名的方法,定义多次。
要求方法名一致,但参数列表必须不一致。
(1)参数的个数不同
(2)参数的类型不同
(3)参数的类型顺序不同
重载与返回值类型无关
重载还有其他名字: overload, 编译时多态。
-
方法调用的值传递(非常重要)
每调用一次方法,在栈中新建一个”栈帧“入栈
当一个方法执行完毕后,从栈中出栈
正在的执行的方法一定是在栈顶 -
方法的递归
一个方法调用自身
思路:将一个复杂问题拆解成多个步骤相似的小问题
5!= 54321
5! = 5*4!
条件1: 推导公式(递归的前进公式)
n! = n*(n-1)! //递归的前进公式
func(n) = n * func(n-1)
条件2:递归的边界
1! = 1
func(1) = 1
练习:第1个人他有2支笔
第2个人是第1个人2倍多1个
第3个人是第2个人2倍多1个
第6个人有多少支笔
f(1) = 2
f(2) = 2f(1) + 1
f(3) = 2f(2) + 1
…
f(n) = 2*f(n-1) + 1
斐波拉契数列: 1, 1, 2, 3, 5, 8, 13…
f(n) = f(n-2) + f(n-1)
f(1) = 1
f(2) = 1