目录
1.函数的定义
什么是函数?
- 函数就是定义在类中的具有特定功能的一段独立小程序
- 在Java中“函数”也称为“方法”
定义函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
格式中的具体含义:
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
2.函数的特点
- 定义函数可以将功能代码进行封装;
- 便于对该功能进行复用;
- 函数只有被调用才会被执行;
- 函数的出现提高了代码的复用性;
- 对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写
- 函数中只能调用函数,不可以在函数内部定义函数;
- 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
3.函数的应用
在定义一个函数时我们应该明确两点:
1)既然函数是一个独立的功能,那么首先要明确该功能最后执行的结果是什么?因为这是在明确函数的返回值类型。
2) 在明确在定义该功能的过程中是否需要未知的内容参与运算。这是在明确函数的参数列表(参数的类型和参数的个数)。
例1:对两个整数进行比较大小,输出最大的数。
public static void main(String[] args) {
int max=getMax(3,5); //在main方法中调用定义的函数
System.out.print("max="+max);
}
public static int getMax(int x,int y)
{
return (x>y)?x:y;
}
例2:根据用户指定的行数和列数打印由'*'组成的矩形。
public static void main(String[] args) {
drawStar(3,4);
}
public static void drawStar(int row,int col)
{
for(int i=0;i<row;i++) //外循环控制行数
{
for(int j=0;j<col;j++) //内循环控制列数
{
System.out.print("*");
}
System.out.println();
}
}
4.函数的重载
什么是函数重载(overload)?
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
函数重载特点:与返回值类型无关,只看参数列表。
函数重载优点:方便于阅读,优化了程序设计。
什么时候使用函数重载呢?
当定义的功能相同,但参与运算的未知内容不同。那么,这时就定义一个函数名称来表示相似的功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
重载示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
例3.判断下面的函数哪些是a的重载函数?
/*
a) void show(int a,char b,double c){}
b) void show(int x,char y,double z){}//没有,因为和原函数一样。
c) int show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
d) void show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
e) boolean show(int c,char b){}//重载了,因为参数个数不同。
f) void show(double c){}//重载了,因为参数个数不同。
g) double show(int x,char y,double z){} //没有,这个函数不可以和给定函数同时存在与一个类中。
*/