1、什么是方法
方法就是一个代码片段. 类似于 C 语言中的 “函数”
2、方法定义语法
基本语法:
public static 方法返回值 方法名称(方法的参数…[0…N]){
//方法体代码
[return 语句];
}
[注]:该方法是否有返回值要看此方法的作用或者功能是什么,没有返回值的方法使用void声明,在没有返回值的方法中仍然可以使用return;用以表示调用方法的提前结束。
方法的调用:
返回值变量 = 方法名称(参数);
//eg:定义一个方法,实现两个int的相加
public class FindSum {
public static void main(String[] args) {
int x = 10;
int y = 11;
int sum = add(x, y);
System.out.println(sum);
}
/**
* add方法接受两个整型参数返回a+b的和;
*/
public static int add(int a, int b) {
//方法中的变量为局部变量在栈中存储
int sum = a + b;
return sum;
}
}
方法调用执行过程:
基本规则:
- 定义方法的时候,不会执行方法的代码,只有调用的时候才会执行。
- 当方法被调用的时候,会将实参赋值给形参
- 参数传递完毕后,会执行到方法体代码
- 当方法执行完毕之后(遇到return语句),执行完毕,回到方法调用位置继续往下执行。
- 一个方法可以被多次调用
实参与形参的关系:
在Java中,方法的参数传递只有值传递,即把 实参的值拷贝一分给形参,对实参没有影响。
方法重载(overload)和方法重写(override)的区别:
方法重载放生在同一个类中,定义了若干个方法名称相同,参数列表不同(参数类型或者个数不同)的一组方法,与返回值无关!!!这样的一组方法称为重载方法。
eg:System类中定义的N个println的重载方法
3、方法递归
一个方法在执行过程中,再次调用自身的操作,称为递归。
递归分为两个子过程:①递过程:函数不断调用自身,直到走到函数的终止条件,第一阶段结束 ②函数不断返回的过程叫归过程。
方法递归的使用条件:
a.一个大问题可以拆分成若干个子问题的解
b.拆分后的子问题和原问题除了数据规模不同,解决思路完全相同
c.必须存在递归的终止条件
【注】在写递归函数时,注意这个方法的语义即有什么功能,假定别人已经写好,自己只是调用而已。
//格式
public static int factor(int n) {
//终止条件
if () {
}
// factor 调用函数自身
return factor();
}