函数的定义
Java中函数也叫方法,是定义在类中的一段独立的代码块,用来实现某个功能;作用是提高代码的复用性和可读性。
语法格式:
修饰符 返回值类型 函数名(形式参数类型1 参数名1…){
函数体语句;
return 返回值;
}
修饰符+返回值类型+方法名+参数类型
public static void main(String []args){}
- 修饰符:public static
修饰符定义了该方法的访问类型
- 返回值类型:void
void为无返回值类型。若需要返回值,把void改成数据类型即可
- 方法名:main
是方法实际的名称。方法和参数共同构成方法名。
- 参数类型:(String []args)
参数像一个占位符。当方法被调用时,传递值给参数。参数是可选的,方法可以不包含任何参数。
函数调用
1.静态(static):类名.方法名
class A
public static void main(String args[]){
b.num();
}
class B
public static void num(){
}
2.非静态:new对象。引用.方法名
class A
public static void main(String args[]){
B b=new B();
b.num();
}
class B
public void num(){
}
函数分类
按是否传递参数:
- 有参函数
public void test(String name){
}
- 无参函数
public void test(){
}
按是否返回值:
- 有返回值函数
public int test(){
return 1;
}
- 无返回值函数
public void test(){
}
局部变量
(局部变量指的是在方法中定义的变量)
- 局部变量必须先初始化才能使用.
- 局部变量随着方法的运行而出现在栈中,随着弹栈而消失
- 局部变量存储在栈内存的方法中
- 定义在方法中里面的变量是局部变量
作用域:
局部变量: 在开始定义的位置开始,到紧跟着结束的花括号为止.
public void test(){
int a //局部变量,出了方法,就无法调用
}
方法重载
(方法的方法名相同,但参数不一致,可以说一个方法是另一个方法的重载。)
重载条件:
- 在一个类中
- 方法名相同
- 参数不同(类型、个数、顺序)
相加个数不同
int add(int num1,int num2){
return num1 + num2;
}
int add(int num1,int num2 ,int num3){
return num1 + num2 + num3;
}
重载的作用:
方法的重载:
- 可以使代码变的美观
- 程序只需记忆很少的方法名,方便调用
函数递归
( 递归算法是一种直接或间接地调用自身的算法。)
递归条件:
- 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)
- 可以使递归在简单条件下退出。(递归出口)
斐波那契数列
public static int fobi(int n){
if(n==1||n==2){
return 1;
}
return fobi(n-1)+fobi(n-2);
}
递归原理:
递归中的“递”就是入栈,递进;“归”就是出栈,回归。每一个方法的调用都会产生一个栈帧,压入到方法栈