1.方法
方法就是一个代码片段. 类似于 C 语言中的 “函数”. 方法存在的意义(不要背, 重在体会):
- 是能够模块化的组织代码(当代码规模比较复杂的时候).
- 做到代码被重复使用, 一份代码可以在多个位置使用.
- 让代码更好理解更简单.
- 直接调用现有方法开发, 不必重新造轮子.
1.1方法定义语法
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...);
代码实例
public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
//方法的调用
int ret = add(a,b);
System.out.println(ret);
}
//方法的定义
public static int add(int x,int y) {
return x+y;
}
}
ret = 30//结果
1.2方法调用的执行过程
定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
当方法被调用的时候, 会将实参赋值给形参.
参数传递完毕后, 就会执行到方法体代码.
当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.
一个方法可以被多次调用
2.方法的重载
有时需要一个函数同时兼容多种参数的情况,我们就可以使用到方法重载.
2.1方法重载的要求
1.方法名相同.
2.返回值不作要求.
3.参数列表不同(参数的个数或参数的类型不同)
代码示例
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int d = 40;
int ret = add(a,b,c);
System.out.println(ret);
double ret1 = add(a,b,c,d);
System.out.println(ret1);
重载方法
public static int add(int a,int b,int c) {
return a+b+c;
}
public static double add(double a,double b,double c,double d) {
return a+b+c+d;
}
}
3.方法的递归
递归:把一个大的问题化解成小的问题
1.调用自己本身
2.要有一个趋近于终止的条件
3.最重要的是推导出递归公式
例如求5的阶乘
代码示例
public static int factor(int n) {
if(n == 1) {
return 1;
}else {
return n*factor(n-1);
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println(factor(n));
}
解题思路就是我们可以把5的阶乘分解成5×(4!), 代码就可以写成n×factor(n-1),终止条件就是当n ==1的时候。
表达的不是很好,继续努力。