1. 概念:
实现特定功能的一段代码,可反复使用。
2. 函数的定义:
public static void 函数名称(){
//函数的主体(功能代码)
}
3. 定义的位置:
定义的位置:定义在类的内部,与main函数并列。多数情况下,定义在main函数的下面
4. 函数的调用:
函数名();
5. 函数的执行顺序:
函数调用时,优先执行函数内部代码,结束后,返回到函数调用处,继续向下执行。
6. 形式参数、实际参数:
I. 定义语法:
public static void 函数名称 ( 形式参数 ) { //局部变量的声明
}
II. 调用语法:
函数名称( 实际参数 ); //为形式参数赋值
7. 补充:
I. 比较的是地址,不是内容。所以当比较字符串时,==不够准确。
II. 比较字符串时,应使用 s1.equals(s2) ,可准确的比较字符串内容。
III. 当比较两个字符串不相同时,可使用 !s1.equals(s2)。 !(逻辑运算符:非)代表“不是”
8. 返回值与返回值类型:
I. 定义返回值类型:基本数据类型、引用数据类型、void
II. return value; //函数可以返回一个结果,类型必须与函数定义的返回值类型一致。
III. 一个函数只能有一个返回值,如果函数中包含分支,需要保证所有的分支都有正确的返回值。
IV. return的两种用法:
1). return value; //表示结束当前函数,并伴有返回值,返回到函数调用处。(有具体的返回值类型)
2). return; //表示结束当前函数,直接会返回到函数调用处。(返回值类型是void)
9. 总结:
I. 注意:一个类中可以定义多个函数,函数之间属于并列关系,不可嵌套。
II. 经验:一个函数只做一件事。
III. 好处:
减少代码冗余。
提高复用性。
提高可读性。
提高可维护性。
方便分工合作。
10. 递归:
I. 实际再发中,递归可以解决一些具有既定规律的问题。
II. 当需要解决的问题可以拆分成若干个小问题,大问题、小问题的解决方法相同,有特定的规律,函数自己调用自己。
III. 设置有效的出口条件,避免无穷递归。
汉诺塔问题、查看文件夹中的所有子文件夹中的所有文件