活动地址:CSDN21天学习挑战赛
1. 方法
1.1方法的概念
方法就是一个代码片段. 类似于 C 语言中的 "函数"
方法的意义:
1. 是能够模块化的组织代码(当代码规模比较复杂的时候)
2. 做到代码被重复使用, 一份代码可以在多个位置使用
3. 让代码更好理解更简单
4. 直接调用现有方法开发, 不必重复造轮子
1.2 方法定义
格式:
方法定义
修饰符 返回值类型 方法名称([参数类型形参...]){
方法体代码;
[return返回值];
}
注意:
1. 修饰符:现阶段直接使用public static 固定搭配
2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void
3. 方法名字:采用小驼峰命名
4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
5. 方法体:方法内部要执行的语句
6. 在java当中,方法必须写在类当中
7. 在java当中,方法不能嵌套定义
8. 在java当中,没有方法声明一说
1.3 方法调用的执行过程
调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行
定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行
一个方法可以被多次调用
1.4 方法的重载
为什么要方法重载?
方法重载是让类以统一的方式处理不同类型数据的一种手段
调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性
在定义一个方法时,参数的类型就已经确定,当我们想用其他类型参数传给该方法时,就会出现不兼容的错误,转换会让数据丢失,因此用方法重载来解决这个问题
也可以定义不同的参数类型的函数使用,但是要提供许多不同的方法名,为了避免这些繁琐的问题的出现,方法重载起到了很重要的作用
在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载
注意:
1. 方法名必须相同
2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
3. 与返回值类型是否相同无关
4. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
2. 递归
2.1 什么是递归
递归,就是在运行的过程中调用自己
构成递归需具备的条件:
1. 子问题须与原始问题为同样的事,且更为简单;
2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理
终止条件必须是在递归最开始的地方,不能把终止条件写在递归结束的位置,这样的话,递归永远退不出来了,就会出现堆栈溢出异常(StackOverflowError)