一、函数的定义
函数就是定义在类中的具有特定功能的一段独立程序,也称为方法。
注意:函数是定义在类中,而不能在函数中定义函数。
二、函数的格式
修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2, ...){
执行语句;
return 返回值;
}
示例代码:
- public static int getSum(int x, int y){
- return x+y;
- }
格式说明:
- 修饰符:对函数的外加修饰,让函数具备更多的含义;
- 返回值类型:函数运行后的返回的结果的数据类型;
- 函数名:可自行定义,只要不和系统关键字等冲突。建议取有意义的名称,书写规范为动名词结合,若为多单词组合,则第一个单词首字母小写,后面的单词首字母大写,如getSum,表示获取求和的值。
- 参数类型:是指形式参数的数据类型;
- 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数;
- 实际参数:传递给形式参数的具体数值;
- return:用于结束函数;
- 返回值:作为函数的处理结果返回给调用者,其数据类型必须与“返回值类型”一样;
三、函数的特点
- 定义函数可以将功能代码进行封装;
- 便于对功能代码进行复用;
- 函数只有被调用才会被执行;
- 函数的出现提高了代码的复用性;
- 对于函数运算后,没有具体的返回值时,返回值类型用关键字void表示,而且如果函数中的return语句如果在最后一行,则可以省略不写。
注意:
——函数中只能调用函数,不可以在函数内部定义函数。也就是说函数之间是平级的,没有包含关系,只有调用动作;
——定义函数时,函数的结果应该返回给调用者,交由调用者处理
四、函数的应用
函数体现的是一个独立的功能,所以在定义函数之前要有“两个明确”:
1、明确该功能的运算结果。目的是为了明确参数的返回值类型;
2、明确在定义该功能的过程中是否有未知的内容参与运算。也就是说,函数的具体内容我们是否能完全独立实现,还是要依赖调用者给我们的一些值才能具体实现;其目的是为了明确函数的参数列表(参数的类型和参数的个数)。
原则:
如何定义一个好的函数:尽量让函数只实现一个功能,这样能提高函数的复用。
示例代码:
- /*需求:输出一个矩形点阵
- * 思路:
- 1、功能结果是输出一个方形点阵,返回值类型是void;
- 2、有未知内容参与运算,有两个,分别代表方形的长和宽,这两个未知内容类型都是int型
- */
- public static void printRectangularLattice(int Length, int Width){
- for(int x=0; x<Length;x++){
- for(int y=0; y<Width;y++){
- System.out.print("*");
- }
- System.out.println();
- }
- return ;
- }
五、函数的重载(overload)
1、重载的概念:在同一个类中,允许存在一个以上的同名函数,只要这些同名函数的参数个数或者参数类型不同即可。
2、重载的特点:与返回值类型无关,只和参数列表有关。即JVM是通过参数列表来区分函数的。而参数列表相同,但返回值类型不同的同名函数不能同时存在与一个类中。
3、重载的好处:方便于阅读,优化了程序设计;
4、重载示例:(在同一个类中)
- //返回两个整数的和
- public static int add(int x, int y){return x+y};
- //返回三个整数的和
- public static int add(int x, int y, int z){return x+y+z};
- //返回两个小数的和
- public static double add(double x, double y){return x+y};