Core Java第四章知识点总结——函数
知识点预览
函数的概念
函数的语法
函数的参数(形参 实参)
函数的返回值类型(voidreturn)
函数的嵌套调用
函数的递归调用
函数的概念
1. 什么是函数(方法 过程)
a) 代码冗余------->程序维护性差
b) 函数、方法、过程等效
函数的语法
1. 形式
a) 返回值类型 函数名(函数参数1, 函数参数2){
函数体
}
b) 函数的三要素:返回值类型 函数名 函数参数(函数声明)
c) 返回值类型:运行完后,往外界返回数据
d) 函数名:为所封装的代码起个名字
e) 函数参数:封装的代码处理的数据往外界传入
f) 函数体:经常需要重复利用的代码(函数实现)
g) public static voidprint();//public static 避免类(Java)
2. 使用
a) 函数之间平级关系
b) 定义在类中
c) 避免多次书写重复代码------>解决代码冗余
3. 函数使用中的注意事项
a) 现实生活中例子-------->肯德基 套餐
b) 定义:在类代码中 不能再次在其他函数中定义 平级关系
c) 使用了函数后 程序流程变复杂(利用函数调用点进行分析)
d) 使用了函数引入两种角色
i. 函数提供者:封装经常需要重复使用代码的程序员(函数声明实现)
ii. 函数使用者:用这个函数的人(调用)
iii. 有的时候,一个人充当两种角色,有时,不同的人充当不同的角色
iv. 这其中就需要函数提供者和函数调用者达成约定
4. 使用函数的好处
a) 提高代码的重用性
b) 便于程序分工协作开发
c) 便于代码的集中管理
函数的参数
1. 什么是函数的参数
a) 函数使用者传入数据------>函数提供者
b) 参数不是必需的
c) 现实生活中类似场景-------->快递
d) public static void print(introws, int cols ){} //rows 行 cols 列 形参需要传参
e) 变量------>可变化的数据
f) print(2, 3);//调用 2,3实参--------->函数调用者真正调用传入的数据
g) 合理定义形参-------->函数提供者定义函数时定义的变量
2. 函数参数注意
a) 函数的形式参数等同于局部变量
函数的返回值
1. 函数的返回值
a) 示例:KFC 卖饭;包子
b) 有返回值的例子------->加法运算
2. void关键字
3. 有返回值的函数与return关键字
a) public static int add(inti, int j) {return}
b) return:运算的结果返回给调用者
4. return关键字的特殊应用
a) return关键字的特殊用法
public static void test(int i){
if (i == 0){
return;
//return后没有任何内容
//程序或者说函数到此结束,返回调用点,后面的代码不执行
}
System.out.println(“This is atest!”);
}
test(1);
test(0);
函数的嵌套调用
1. 示例代码
public staticvoid main(String[] args){
System.out.println(“main 1”);
test1(2);
System.out.println(“main 2”);
}
public static void test1(int a){
System.out.println(“test1” + a);
test2(a);
}
public static void test2(intb){
System.out.println(“test2” + b);
}
执行结果;
main 1
test1 2
test2 2
main 2
函数的递归调用
1. 递归调用(自己调用自己)
2. 示例代码:
public staticvoid main(String[] args){
test();
}
//死递归
public static void test(){
System.out.println(“TestFunction”);
test();
}
3. 处理递归------>收敛条件:满足特定条件,自己不会调用自己
4. 示例代码
public class Test{
static int i = 3;//全局变量,在多个方法中调用
public static voidmain(String[] args){
test();
}
//有效递归
public static void test(){
//收敛条件
if(i < 0){
return;
}
System.out.println(“Test Function”);
i --;
test();
}
}