函数
函数:函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或一个值。
函数主要解决的是重复的具有独立功能的代码段,降低了代码冗余与主函数代码量(将主函数进行适当的拆分以便内存优化)。
切记:千万不要在函数的内部创建函数 函数必须在类里面 函数们之间是平级关系。
函数格式
访问权限 函数类型 返回值类型 函数名(参数列表){
函数体-->具有独立功能的代码片段
return 返回值;
}
比如
class Demo{
public static void main(String[] args){
.
.
.
}
}
访问权限:函数的适用范围(内部/外部);
权限由大到小为public protected 默认 private。
函数类型:指函数的类型分类;
- static 静态函数
- 默认不写 成员函数
- abstract 抽象函数
- native 本地函数
- synchronized 同步函数
函数名:程序员给这一段代码自定义的名称(标识符)。
参数列表:参数列表由若干个 (参数类型,参数名)组成;主要用于接收外界传递给函数的一些数据。
函数体:具有独立功能的代码片块。
return:仅仅表示结束当前函数,如果有返回值,则函数结束前将返回值返回给调用者。
返回值:具有独立功能的代码块计算的结果(函数的计算结果);需要传递给外界。
返回值类型:返回值的数据类型。
主函数的格式分析
public static void main (String[] args){
}
public 主函数是公开权限 最大权限
static 主函数是静态函数
void 该函数没有返回值
main 主函数的名称
String[] String[] 表示的是一个字符串数组(数据类型)
args 就是这个数据类型的变量名称
番外:我们可以在执行程序的时候 给主函数传递一些参数
return:发现return不在
!!!而是因为函数没有返回值 所以return可以忽略不写 不代表不存在
!!!return本身表示结束当前函数!
!!!如果函数有返回值 return 返回值; 必须写
下面是错误的对无返回值函数的操作
class Demo{
public static void main(String[] args){
System.out.println(show());
int d=show();
int e=show()+10;
return;
}
}
函数的分类
- 有返回值
1)有参数
2)无参数
- 无返回值
1)有参数
2)无参数
注意:有返回值的函数参与运算、赋值、输出;无返回值函数的仅仅调用。
函数传参
- 实际参数(实参):就是在调用函数的时候,给函数传递的数据(常量,变量)
- 形式参数(形参):就是下定义函数的时候,参数列表当中的数据。
实参传形参时 :传的是常量在常量池的地址/有对象后在堆内存中地址。
函数栈
- 函数运行时是基于栈内存运行的。
- 栈是一种先进后出的容器结构。
- 例如:弹夹里的子弹,子弹在打出的时候第一颗出枪膛的子弹时最后一个进弹夹的子弹,最后一颗出枪膛子弹是第一个进弹夹的子弹。
我们可以将每个函数理解为函数帧,位于栈顶的函数优先运行。由于主函数是第一个进栈,所以主函数后运行。
函数中的return相当于弹栈。
(此外还有函数的重载等关于函数的内容,那就下次再讲喽!!!)