一.概念
一段可以实现特定功能的代码,可以反复执行
二.语法
-
声明及实现
修饰符 返回值类型 函数名(参数表){ //完成特定功能的代码 } public static void 函数名(){ }
-
位置
类的内部,其他方法的外部.
-
函数的调用
函数名(参数表); 函数名();
-
函数的执行流程
遇到函数调用,根据函数名找到对应的函数,先执行函数内部的代码,执行完毕后返回函数调用处继续执行后续代码
三.参数
-
概念:函数的调用往往需要一些数据,只要调用者提供了数据,函数才能执行对应的功能,这个数据称为参数.
-
语法:
-
函数声明处–形式参数,形参
public static void 函数名(数据类型 参数名)//int a //函数声明处定义参数类型=声明变量,告知调用者,调用此函数需要的数据类型
-
函数调用处–实际参数,实参
函数名(参数值); //给函数声明处的参数赋值
**注:**参数可以有多个,多个参数间用",“隔开 (int a,String s)–(10,”+")
实参的类型需要和形参依次匹配,实参长度和形参保持一致
函数参数可以是所有的数据类型
-
四.返回值
-
语法:
-
函数声明处
public static 返回值类型 函数名(参数表){//告知调用者返回的数据的类型 return 返回值;//return指定返回的数据 } void:没有返回值 返回值类型可以是所有的数据类型
-
函数的声明处
返回值的类型 变量名=函数名(形参);
-
-
**注:**return:
- 可以用在没有返回值的函数中,作用结束函数
- 可以用在有返回值的函数中,指定返回值的数据并结束函数
- 有返回值的函数中存在分支语句,必须保证每条分支都有return语句
五.函数的嵌套
-
函数的嵌套调用:在一个函数的内部调用其他函数(遇到函数调用,根据函数名找到对应的函数,先执行函数内部的代码,执行完毕后返回函数调用处继续执行后续代码)
-
补:
栈帧:用于java支持JVM进行方法调用和方法执行的数据结构,每个栈帧中包含局部变量,操作数栈,返回值…等数据.这种数据结构运行时先进后出
-
函数递归:在一个函数的内部调用函数自己
问题:java.lang.StackOverFlowError:栈溢出错处
原因:没有收敛条件(没有办法结束)