目录
一、方法概述
1. Java方法是语句的集合,他们在一起执行一个功能
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在类中被创建,在其他对象被引用
2.设计方法的原则
- 方法的本意是功能块,是实现某个功能的语句块的集合,所以最好保持方法的原子性,即一个方法只完成一个功能。
二、方法定义
方法包括方法头和方法体:
- 修饰符:定义了该方法的访问类型;
- 返回值类型:方法可能会有返回值,如果没有就是void;
- 方法名:方法的实际名称;
- 参数类型:当方法被调用时,传递值给参数,这个值称为实参或变量,参数列表指方法的参数类型、顺序和参数的个数,参数是可选的,方法可以不包含任何参数;
- 方法体:包含具体的语句,定义方法的功能。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
reutrn 返回值;
}
三、方法调用
- 调用方法:对象名.方法名(实参列表)
- 当方法返回一个值的时候,方法调用作为一个值;
int res = add(1,2);
System.out.println(res);
打印:3
- 如果方法返回值是void,方法调用一定是一条语句。
四、方法重载
1. 重载:在一个类中,有相同的函数名称,但形参不同的函数
2. 方法重载规则:
- 方法名称必须相同;
- 参数列表必须不同,参数个数不同、类型不同、参数排列顺序不同等;
- 方法的返回值可以相同也可不同,仅仅返回类型不同不足以成为方法的重载。
3.实现原理:
- 方法名相同时,编译器根据句调用方法的参数个数,参数类型等去匹配,选择对应的方法,匹配失败则会报错。
package method;
public class Demo1 {
//main方法
public static void main(String[] args) {
int sum = add(1,2);
double sum2 = add(1.0,2.0);
System.out.println(sum);
System.out.println(sum2);
}
//int
public static int add(int a,int b){
return a+b;
}
//double
public static double add(double a, double b){
return a+b;
}
}
五、递归
1. 递归定义
- 方法调用:A方法调用B方法
- 递归:A方法调用A方法,自己调用自己
2.递归结构包括两部分
- 递归头:终止递归的条件,如果不进行终止,会陷入死循环;
- 递归体:什么时候需要自己调用自己
3.递归作用
- 把一个大型复杂问题转换为与原问题相似的小规模问题来求解,在于用有限的语句定义对象的无限集合。
//递归 --> 阶乘
public class Demo2{
//5! 5*4*3*2*1
public static void main(String[] args){
System.out.println(f(5));
}
public static int f(int n){
if(n == 1){
return 1;
}
return n*f(n-1);
}
}