一、概述
Java方法是语句的集合,类似其它语言的函数,是用来完成特定功能的代码块。
- 解决一类问题的步骤的有序集合
- 包含于类或对象之中
- 在程序中被创建,在其它地方被引用
设计方法的原则:保证方法的原子性,即一个方法只实现一个功能。
二、方法的定义和调用
2.1 格式
定义方法的三要素:返回值类型,方法名称,参数列表
修饰符 返回值类型 方法名(参数列表){
方法体
Return 返回值;
}
2.2 调用
2.2.1 单独调用
方法名称(参数);
2.2.2 打印调用
System.out.println(方法名称(参数));
2.2.3 赋值调用
数据类型 变量名称 = 方法名称(参数);
2.2.4 补充
- 被static修饰符修饰的方法在类被创建的时候就已经存在了
- 如果一个类中的方法被static修饰,那么不管是在本类还是在其他类的main方法中,都可以直接通过类名.方法名()的方法调用。
- 如果没有被static修饰,那么只有通过类创建对象,通过对象.方法名()的方法来调用
三、重载
3.1 定义
重载就是在一个类中,有相同的函数名称,但是参数列表不同的函数
3.2规则
- 方法名必须相同
- 参数列表必须不同(个数不同、参数类型不同、排列顺序不同等)
- 方法的返回值类型可以相同也可以不同
- 仅仅是返回值类型不同不足以成为方法的重载
3.2 理论基础
当方法的名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,那么编译器会报错。
四、可变参数
在方法声明中,在指定参数类型后加一个省略号,一个方法只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在它之前声明。
五、递归
5.1 概念
是指在当前方法内部自己调用自己的这种现象。利用递归可以用简单的程序解决复杂的问题。它通常把一个大型复杂问题层层转换为一个与原问题相似规模大小的问题求解,递归策略只需要少量的程序就可描述出解题过程所需的多次重复计算,大大地减少程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
5.2 分类
- 直接递归
- 间接递归
5.3 规则
- 递归一定要有条件限制,保证递归能够停下来,否则会发生栈内存溢出。
- 虽然有条件限制,但是递归次数不能太多,否则还是会发生栈内存溢出。
- 构造方法严禁递归。