什么是函数:
函数是为了解决某一特定问题,具有名称的的代码集合。
函数也就是现实中的一种行为动作。
java中如何定义函数
访问修饰符 函数返回值的类型|void 函数名称([参数列表]) {
// 函数体
// return 返回值;
}
//定义了一个叫Fobla 的函数:
public static int Fobla(int n) {
if (n == 1|| n == 2){
return 1;
}
return Fobla(n-1)+Fobla(n-2);
注意事项:
1.java中函数是属于类的!!必须定义在类中!!!所以说函数是类成员
先把函数都定义静态函数,等学习了面向对象,再定义常规函数!!
2.java中:静态方法没有办法直接调用非静态方法!!!只能调用静态方法
函数调用:
函数是无法自己执行的!!!必须通过调用才可以执行!!!
函数名称([参数列表]);
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入要打印的斐波拉契的列数值:");
int num = sc.nextInt();
int fobla = Fobla(num);//调用函数 返回值传给变量
System.out.println(fobla);
}
函数的分类:
有没有参数:
有参函数 无参函数
有没有返回值:
有返回值的函数 无返回值的参数
定义者 :
系统函数 第三者 自定义函数
函数的递归:
递归(recursion):
什么叫做递归:函数自身调用自身
递归时的内存模型:
优点:分治理念的体现,可以把非常复杂的问题,简单解决
缺点:非常耗费内存,所以说,当栈被全部占用后,触发StackOverflowError异常!!!
注意,可以使用java -X -Xss 大小, 来调整JVM的栈大小空间
-Xms<大小> 设置初始 Java 堆大小
-Xmx<大小> 设置最大 Java 堆大小
//求第n项的斐波那契数列值;
import java.util.*;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入要打印的斐波拉契的列数值:");
int num = sc.nextInt();
int fobla = Fobla(num);
System.out.println(fobla);
}
public static int Fobla(int n) {
if (n == 1|| n == 2){
return 1;
}
return Fobla(n-1)+Fobla(n-2);
}
}