文章目录
一.方法的基本用法
1.什么是方法(函数)
方法就是一个代码片段,类似于C语言中的“函数”。
方法存在的意义
a.是能够模块化的组织代码(当代码比较复杂的时候)
b.做到代码被重复使用,一份代码可以在多个位置使用
c.让代码更好理解更简单
d.直接调用现有方法开发,不必重复造轮子
2.方法的定义语法
public static 方法返回值 方法名称(方法的参数。。[0…N]){
//方法体的代码
[return语句];
}
该方法是否有返回值要看这个方法的作用或者功能是啥
比如:求某几个数(int)的和=>调用这个方法就是想知道和是多少,当然要有返回值,告诉调用者返回值是多少=>int
实现一个方法,接收任意一个正整数,输出每一位的数字是几=>你给我传入任意一个整数,我就能输出每一位数字,不需要返回值
3.方法的调用
返回值变量=方法名称(参数);
基本规则:
1.定义方法的时候,不会执行方法的代码,只有调用的时候才会执行
2.当方法被调用时,会将实参赋值给形参
3.参数传递完毕后, 就会执行到方法体代码
4.当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行
5.一个方法可以被多次调用
计算1!+…+5!
4.实参与形参的关系
在java中,方法的参数传递只有值传递,所谓的值传递就是把实参的值拷贝一份给形参,对实参没有任何影响
解决方法:在方法外部交换两个局部变量的场景在java中压根就不存在,这个问题的解决需要引入引用数据类型(数组或对象)
5.没有返回值的方法
没有返回值的方法使用void声明,在没有返回值的方法中,仍然可以使用return;表示提前结束方法的调用。
二.方法的重载
请解释方法重载(overload)和方法重写(override)的区别:
方法重载发生在同一个类中,定义了若干个方法名称相同,参数列表不同(参数的类型或者个数不同)的一组方法,与返回值无关,这样的一组方法称为重载方法
java中System.out.println(任意参数类型都可以):实际上就是因为System这个类中定义了N个重载方法
三.方法递归
1.什么是方法递归
所谓方法递归就是在一个方法执行的内部,自己调用自己的过程,称之为递归。
递归分为两个子过程:
a.递过程:函数不断调用自身,直到走到函数的终止条件,第一阶段结束
b.归过程:函数不断返回的过程称为归过程
2.什么场景下能调用方法递归
a.一个大问题可以拆分成若干个子问题的解
b.拆分后的子问题和原问题除了数据规模不同,解决思路完全相同
c.必须存在递归的终止条件(不会无限拆分下去,一定能走到根)
3.如何写出递归代码
在写递归函数时,千万不要纠结这个函数内部到底咋实现,而是注意这个方法的语义(这个函数到底有什么功能),就假设,这个方法别人已经写好了,你只是调用这个方法而已
递归函数的关键:
方法调用时,程序会卡在调用处,直到方法返回继续运行
写出递归代码其实=终止条件+不借助任何方法就能实现的步骤+剩下的问题利用这个方法去解决
a.求阶乘值的递归方法:
b.传入任意一个非负整数num,求出组成num的各个位数之和:
c.求菲波那切数列:
d.按顺序输出一个正整数的每一位: