–函数是什么:
函数是封装了具备特定功能的一段代码块,具备特定功能的代码集合。
–为什么使用函数:
解决重复性代码问题,提高代码的复用度。
–函数基本格式:
访问修饰符 [static] 返回值的类型 函数名称([形式参数列表]) {
函数体语句
return 返回值
}
–说明:
修饰符:public 公共的static 静态的
返回值类型:就是函数所实现的功能结果的数据类型。
方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。
参数列表:即形式参数列表,用于接收实际参数。
参数类型:参数的数据类型
参数名:即变量名
函数体语句:就是函数要完成的功能
return:用来结束函数
返回值:即这个函数的功能的结果 ,由return带回调用地方。
–函数的调用:
函数名称([实际参数列表])
--注意:当函数定义完成后,不会自己执行,需要通过调用来执行
–函数的分类:
-- 通过函数是否存在参数
-- 无参函数
public static int Method(){
int a=1;
int b=2;
return a+b;
}
-- 有参函数
public static void Method( int a,int b){
System.out.println(a+b)
}
|-- 函数是否需要返回计算结果
|-- 无返回值
public static void Method(){
int a=1;
int b=2;
System.out.println(a+b)
}
|-- 有返回值
public static int Method(){
int a=1;
int b=2;
return a+b;
}
–局部变量:
定义在函数内部的变量,叫做局部变量,局部变量的作用域只在当前函数中有效。
--注意:在Java中没有全局变量,main函数中的变量也是局部变量,只是比较特殊,
作用域还是main函数本身,但是生命周期是比较长。
–函数调用本质:
函数本质是一个对象,存储在堆中
函数本质存储在堆中,当调用时,会临时的压入栈中(push),
等调用完成后,会立刻弹出栈(pop),所以函数调用就是瞬时操作
–函数重载:
至少两个或者更多函数,函数名称相同,但是参数的个数或者类型不同,
从而在调用的时候,可以通过传参确定要调用的函数
函数重载,本质是对功能的扩展,不是代码的复用!
--Java方法重载规则:
1、方法名必须一致
2、参数列表必须不一致(参数类型、参数个数、参数排列顺序)
3、方法的返回类型可以相同也可以不同
4、只是返回类型不同不是方法重载
函数的递归(recursion):
函数自身调用自身
如果要使用递归:必须有终止条件,没有终止条件的递归就是一个死循环!
–例:菲波那切数列: