——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
1.定义:指在类中的具有特定功能的一段小程序,也称为方法。
2.格式:修饰符 返回值类型 函数名{参数类型 形式参数1,参数类型 形式参数2,…) (注:参数是有顺序的。)
{
执行语句;
return 返回值;
}
3.名词解释:
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
4.补充:
定义函数可以将功能代码进行封装,便于进行复用。
函数只有被调用才会被执行。
对于函数没有具体返回值的情况,返回值类型常用关键字void表示,那么该函数中的return语句如果在最后一行可以忽略不写。
函数只能调用函数,不能在函数内定义函数。定义函数时,函数的结果应该返回给调用者,交由调用者处理。
5.如何定义一个函数呢?
1.既然函数是一个独立的功能,那么该功能的运算结果是什么,要明确好。
2.在明确该功能的过程中是否需要其他未知的内容参与运算?
需求1:
定义一个功能,实现两个整数变量的和.
分析:
1.明确功能的结果,是一个整数的和。
2.在实现该功能的过程中有未知内容进行参与运算。
其实这两个就是在明确函数的定义。
1.是在明确函数的返回值类型。
2.明确函数的参数列表(参与的类型和个数)
代码:
class Hanshu
{
public static void main (String[] args)
{
boolean x =compare(0,0);
System.out.println(x);
}
public static boolean compare(int a,int b)
{
/*if(a==b)
return true;
else
return false;
return (a==b)?true:false;*/
return a==b;
}
}
运行结果:
需求2:
定义一个功能,实现判断两个数/字符大小,获取较大的数/字符。
1、明确功能的结果是整数 int/char 类型。
2、在实现功能的过程中有未知内容进行参与运算。
代码:class Hanshu
{
public static void main (String[] args)
{
char x =getMax('a','A');
System.out.println(x); //输出结果是字符a,因为a的ASCII值97大于A的ASCII值65。
}
public static char getMax(char a,char b)
{
return (a>b)?a:b;
}
}
运行结果:
需求3:
定义一个功能函数,打印九九乘法表。
思路:
1.确定结果,没有,因为直接打印,所以返回值类型是void。
2.有未知内容么?有,两个。
代码:
class Hanshu
{
public static void main(String[] args)
{
print99();
}
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 print99() // //如果要打印完整的乘法口诀的时候就调用这个函数。
{
for (int x=1; x<=9; x++)
{
for (int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println(); //为了优化代码,可以直接调用上面代码。print99(9)。
}
print99(9);
}
}
运行结果:
6.函数重载(Overload):在同一个类中允许存在一个以上的同名函数,只要他们的参数个数和参数类型不同即可。
特点:与返回值类型无关,只看参数列表。
优点:方便于阅读,优化了程序设计。
小练习:
void show(int a, char b, double c){}
判断以下函数和给定函数是否重载?
1.void show(int x, char y, double z){} 没有,因为参数类型和原函数一样,变量可以随意命名的。
2.int show(int a, double b, char c){} 重载,参数类型不同,参数是有顺序的,和返回值类型无关。
3.void show(int a, double c,char b){} 同上。
4.boolean show(int a, char b){} 重载,参数个数不同。
5.void show(double c){} 同上
6.double show(int x, char y, double z){} 没有,参数一致。
作用:
什么时候用重载,当定义的功能相同,但是参与运算的未知内容不同。
那么,这时就定义一个函数名称以表示功能,方便阅读,而通过参数列表的不同来区分多个重名函数。
需求:
设计两个函数,实现两个整数,三个整数相加求和的功能。
代码:
class Hanshu
{
public static void main(String[] args)
{
int sum=add(2,4);
System.out.println("sum="+sum);
int sum1 =add(3,4,6);
System.out.println("sum1="+sum1);
}
public static int add(int x,int y) //参数列表和下面个数不同,类型都是int相同,可以重名。
{
return x+y;
}
public static int add(int x, int y,int z)
{
return x+y+z; //可以优化成add(x,y)+z .
}
}
运行结果:
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-