函数的概念
1.什么是函数 ?
函数就是定义在类中的具有特定功能的一段独立小程序,并能被多次使用。
将重复性代码封装起来,避免代码冗余,在需要执行某段功能的时候调用这段封装的代码,解决重复的问题。可以称一段具有独立功能的代码为功能性代码。
函数的定义格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...){
执行语句;
return 返回值; //return关键字是用于结束该功能。并将后面的具结果返回给调用者。
//必须有return语句。
}
访问修饰符:分为public,protected,默认,private
函数类型:static静态函数 Synchronized同步函数native本地函数 默认 成员函数
返回值类型:函数的计算结果(返回值)是什么类型 这就是什么类型(向下兼容)
函数名:对该功能的解释说明,可以自定义
参数列表:参数类型1 参数名1, 参数类型2 参数名2,…
函数体:就是具体的代码实现环节
return:仅仅表示结束当前函数(弹栈)
函数的返回值类型如果是void时,return语句可以省略不写;void表示的是没有返回值的情况。返回值一次只能返回一个值。
2、函数的调用方法:
class Demo{
public static void main(String[] args){
//StackOverflowError
int res1=pow(2,8);
System.out.println(res1);
}
public static int pow(int x,int n){
int res=1;
for(int i=1;i<=n;i++){
res=res*x;
}
return res;
}
}
首先会加载main方法加载进栈内存中,并执行main方法中的代码,分别给 x变量开辟空间并存放2,给n变量开辟空间存放。当程序执行到int res1=pow(x,n); 时,会将pow函数加载进栈内存中,同样在getSum所属的栈区域中开辟x和n变量空 间,接受main方法中的pow(x,n);传递的值。然后执行pow函数中的代码,当 pow函数执行结束后,函数会出栈(弹栈)。程序回到main方法的调用语句int res1=pow(x,n);处,并将pow方法执行完返回的结果赋值给res1变量,程序继续往下执行,打印res1的值。.
3、函数的重载
函数的重载是多态的表现
函数重载的要求:
- 同一个类
- 同名函数
- 参数个数不同或者参数类型不同
public static int add(int a,int b){ //两个整数的和
return a+b;
}
public static double add(double a,double b){ //两个小数的和
return a+b;
}
public static double add(int a,double b){ //整数和小数之和
return a+b;
}
public static int add(int a,int b,int c) //三个整数的和
{
return add(a,b)+c;
}
重载的表现就是同一个类中有多个同名函数。区分重载主要看参数类型的排列组合(顺序,个数)