函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
函数的定义
l 函数的格式:
• 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
代码示例:
publicclass FunctionDemo
{
public static void main(String[] args)
{
int x = 4;
System.out.println(x*3+5);
x = 6;
System.out.println(x*3+5);
System.out.println("----------------------------------------------------------------------");
int y = getReasult (4);
System.out.println("y="+y);
System.out.println("----------------------------------------------------------------------");
jieGuo (7);
}
//发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
//为了提高代码的复用性,对代码进行抽取。
//将这个部分定义成一个独立的功能,方便于日后使用。
//java中对功能的定义是通过函数的形式来体现的。
//需要定义功能,完成整数的 *3+5 的运算,并打印其结果。
//1.先明确函数的定义格式。
/* 修饰符 返回值类型 函数名 (参数类型 形式参数1,参数类型 形式参数2,)
* {
* 执行语句;
* return 返回值;
* }
*
* */
public static int getReasult(int x)
{
return x * 3 +5;
}
//当函数运算后,没有具体返回值时。这时返回值类型用一个特殊的关键字代替。
//改关键字就是void。void代表的是函数没有具体返回值时的情况。
//当函数的返回值类型是void时,函数中的return语句可以省略不写。
public static void jieGuo(int m)
{
System.out.println(m * 3 + 5);
}
}
函数的特点
l 定义函数可以将功能代码进行封装
l 便于对该功能进行复用
l 函数只有被调用才会被执行
l 函数的出现提高了代码的复用性
l 对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
l 注意:
• 函数中只能调用函数,不可以在函数内部定义函数。
• 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
函数的应用
l 两个明确
• 明确要定义的功能最后的结果是什么?
• 明确在定义该功能的过程中,是否需要未知内容参与运算
函数的重载
重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。
如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。
重载的好处:方便于阅读,优化了程序设计。
代码示例:
/* 什么时候用重载?
* 当定义的功能相同,但参与运算的未知内容不同时。
* 那么这时就定义一个函数名称以表示其功能,方便阅读。而通过参数列表的不同来区分多个同名的函数。
* */
publicclass FunctionOverLoad
{
public static void main(String[] args)
{
int x = getSum(2,3);
System.out.println(x);
pintHr();
int y = getSum(3,6,8);
System.out.println(y);
pintHr();
print99();
pintHr();
print99(5);
}
// 定义一个加法运算,获取两个数的和。
public static int getSum(int x, int y)
{
return x+y;
}
//定义一个加法运算,获取三个数的和。
public static int getSum(int x, int y, intz)
{
return x+y+z;
}
// 定义一个功能,打印99乘法表。
public static void print99()
{
print99(9);
}
// 定义一个功能,由用户自己决定打印99乘法表的长度。
public static void print99(int num)
{
for(int x = 1; x <= num; x++)
{
for(int y = 1; y <= x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
public static void pintHr()
{
System.out.println("---------------------------------------------------------------------");
}
/* void show(int a, char b, double c){}
*
* a.
* voidshow(int x, char y, double z){} //没有重载,因为和原函数一样。
*
* b.
* intshow(int a, double c, char b){} //重载了,因为参数类型不同。注意:重载和返回值类型无关。
*
* c.
* voidshow(int a, double c, char b){} //重载了,因为参数类型不同。注意:重载和返回值类型无关。
*
* d.
* boolean show(int c, char b){} //重载了,因为参数个数不同。
*
* e.
* voidshow(double c){} //重载了,因为参数个数不同。
*
* f.
* double show(int x, char y, double z){} //没有重载,这个函数不可以和给定函数同时存在在一个类中。
* */
}