方法
定义:方法就是将一段业务逻辑提取出来,可以在任意的位置重复使用这段代码。
方法的定义
基本语法:
[访问权限修饰符] [其他修饰符] 返回值 方法名 ([参数列表]){
//方法体
}
注意事项:
方法与方法之间是平行关系,不允许出现方法嵌套方法。
方法做好后,方法体内的代码不会自动执行(需要手动调用)。
方法的调用
直接方法名+();
static修饰的方法叫做静态方法,没有static叫做非静态方法
静态方法不能直接调用非静态方法。
拓展:栈和队列
栈:先进后出,后进先出。
队列:先进先出,后进后出。
栈和堆:一块内存空间。
当一段java程序被编译后,所有的方法都会放在方法区,如果调用这个方法,需要将一个指定的方法压到栈空间去执行。
方法的参数
形参:方法定义时,定义在参数列表中的参数。
实参:方法调用时,写在调用方法的参数值。
方法的返回值
void代表方法没有返回值。
返回值类型:方法执行完毕,返回一个类型的结果。
return可以返回一个值,作为此方法的一个结果,return后其后面的代码不再执行。void方法中用return表示结束方法。
注意事项:
- 如果返回值类型不是void,方法结束前,必须有一个返回值。
- 返回值类型一定要和方法定义的返回值类型匹配。
- 如果方法涉及到分支结构,需要保证每一个分支上都有结果返回。
方法的重载
重载(overload):如果在一个类中的不同方法,满足一下两个要求,他们之间的关系就是重载:
- 方法名称相同
- 参数不同:数量、类型(或者顺序)
注意:重载和返回值没有关系,和访问权限也没有关系
如何区分调用的重载方法:通过参数来区分
为什么要用重载:方便使用,重载是一个类中的多态体现。
方法的递归
递归:方法调用自己,或者A调用B,B调用A,做循环调用。一般情况下,指的是调用自己。
SOF:stackOverFlowError栈溢出(原因是递归层数过多)
OOM:OutOfMemoryError内存溢出
注意事项:如何避免SOF:找到方法的出口即可。