函数定义
1、什么是函数:
函数:具有名称为了实现某一特定功能的代码的集合
函数的封装:函数封装是一种函数的功能,它把一个程序员写的一个或者多个功能通过函数、类的方式封装起来,对外只提供一个简单的函数接口。封装代码,提高代码的复用性。
2、函数的结构
访问修饰符 返回值的类型 函数名称([参数列表]) {
// 函数体
[return 返回值;]
}
a、访问修饰符:public protected 默认 private
b、函数类型:static静态函数 Synchronized同步函数 native本地函数 默认 成员函数
c、返回值类型:函数的计算结果(返回值)是什么类型 这就是什么类型(向下兼容)
d、函数名:对该功能的定义
e、参数列表:参数类型1 参数名1, 参数类型2 参数名2,…
f、函数体:只的就是具体的代码实现细节
g、return:仅仅表示结束当前函数(弹栈) 如果有返回值则返回
h、返回值:如果没有返回值 返回值类型void,返回值一次只能返回一个值。
3、方法的调用
class MethodDemo {
public static void main(String[] args)
{
int sum = getSum(3,4);
System.out.println("sum="+sum);
} //定义功能求和
public static int getSum(int a , int b)
{
return a + b;
}
}
4、函数的分类通过有无参数和有无返回值
通过是否存在参数分为:有参函数、无参函数
通过有无返回值分为:有返回值的函数、无返回值函数
5、函数的重载
指的是,多个函数之间的一种关系,函数名称相同,函数参数的类型的或者参数的个数的不同
示例:
class testoverload {
//函数的重载
public static void main(String[] args) {
System.out.println(add(5.0,4));
}
public static int add(int x, int y){
return x + y;
}
public static int add(int x, int y, int z){
return x + y + z;
}
//这行函数和第一个函数是相同的函数
/*public static int add(int y, int x){
return x + y;
}
*/
public static double add(double x, int y){
return x + y;
}
public static double add(double x, double y){
return x + y;
}
public static double add(int x, double y){
return x + y;
}
}
6、函数的递归
指函数自身调用自身
class testrecursion {
public static void main(String[] args) {
int sum = getsum(100);
//如果运行数字太大也会使栈空间消耗完,jvm会抛出staticoverflowExcerror异常。
System.out.println("1~100的和为:" + sum);
}
//使用递归完成1~100的和
public static int getsum(int num){
//2、递归必须要有终止条件。
//如果没有终止条件,那麽递归就是死循环,直到栈空间消耗完为止。jvm会抛出staticoverflowExcerror异常。
if(num <= 1){
return 1;
}
//递归的必要条件:1、函数自身调用自身
return num+getsum(num - 1);
}
}