函数的定义:
定义函数的格式:
什么是函数?
函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。
修饰符 返回值类型 函数名(参数类型 形式参数1,函数类型 形式参数2 ,............){
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。 返回值:该值会返回给调用者。
public class function{
特殊情况:函数没有具体的返回值这时的返回值return 直接用 " ; " 结束。
这时的返回值类型怎么体现呢? 因为没有具体返回值,所以不用写具体的返回值类型。
在Java语言中用 void 关键字类修饰这一类函数。
pubolic static void myPrint(){
System.out.println("Hello World ....");
}
}
函数的特点:
定义函数可以将功能代码进行封装。
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键 字void表示,那么该函数中的return语句如果在最后一 行可以省略不写。
注意: 函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
main主函数只用来调用函数,不能在其代码块中定义函数。
函数的应用
class FunctionDemo3
{
public static void main(String[] args)
{
// draw(4,6);
// draw(7,9);
// print99();
System.out.println("hello");
}
/*
需求1: 定义一个功能,完成两个整数的和的获取。
思路:既然定义功能,就是可以用函数来体现。
如何定义一个函数呢?
通过两个明确来完成。
明确一:这个功能的结果是什么?
是和。是功能的结果,所以该功能的返回值类型是int 。
其实就是在明确函数的返回值类型。
明确二:这个功能实现过程中是否需要未知内容参与运算?
有,加数和被加数。这就是函数的参数列表(参数的个数,参数的类型)
其实就是在明确参数列表。
注意:返回值类型和参数类型没有直接关系。
*/
public static int add(int a,int b)
{
int sum = a+b;
return sum;
}
/*
需求2: 定义一个功能,画一个矩形在控制台。
明确一:这个功能的结果是什么?
没有结果,因为直接打印到了,控制台,并未返回给调用者。
用void表示。
明确二:这个功能实现过程中是否需要未知内容参与运算?
有,行和列不确定。两个。整数 int.
*/
public static void draw(int row,int col)
{
for (int x=1; x<=row ;x++ )
{
for (int y=1;y<=col ; y++ )
{
System.out.print("*");
}
System.out.println();
}
// return ;//可以省略不写。
}
/*
需求3: 定义一个功能,比较两个数是否相等。
明确一:这个功能的结果是什么?
有,boolean.
明确二:这个功能实现过程中是否需要未知内容参与运算?
有,两个整数。
*/
public static boolean equals(int a,int b)
{
/*
if(a==b)
return true;
else
return false;
boolean x ;
if(a==b)
x = true;
else
x = false;
return x;
*/
// return (a==b)?true:false;
return a==b;
}
/*
需求1: 定义一个功能,获取两个整数中较大的那个数。
明确一:这个功能的结果是什么?
有,其中一个数。 int
明确二:这个功能实现过程中是否需要未知内容参与运算?
有,参与比较的两个整数 int
*/
public static int getMax(int a,int b)
{
/*
if(a>b)
return a;
else
return b;
*/
return a>b?a:b;
}
/*
定义功能,打印99乘法表。
*/
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();
}
}
/*
根据考试成绩获取学生分数对应的等级
90~100 A
80~89 B
70~79 C
60~69 D
60以下 E
结果:等级,字符,char
参数:分数 ,int.
*/
public static char getLevel(int num)
{
char level ;
if(num>=90 && num<=100)
level = 'A';
else if(num>=80 && num<=89)
level = 'B';
else if(num>=70 && num<=79)
level = 'C';
else if(num>=60 && num<=69)
level = 'D';
else
level = 'E';
return level;
}
}
函数的重载
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
函数靠实际参数的排列与类型来确定具体调用重载的哪个具体的函数。
重载的特点:
与返回值的类型无关,只与看参数列表。
重载的好处:
方便与阅读,优化了程序设计。
重载示例:
/*
需求:函数的重载。
*/
class FunctionDemo4
{
public static void main(String[] args)
{
// add(4,6,9);
// System.out.println("Hello World!");
printCFB(7);
}
/*
函数的重载。
1,同一个类,
2,同名。
3,参数个数不同。or 参数类型不同。
4,函数重载和返回值类型无关。
5,java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。
*/
//加法运算。两个整数的和。
public static int add(int a,int b)
{
return a+b;
}
//加法运算。两个小数的和。
public static double add(double a,double b)
{
return a+b;
}
//加法运算,三个整数的和。
public static int add(int a,int b,int c)
{
return add(a,b)+c;
}
/*
打印乘法表。
*/
public static void printCFB(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 printCFB()
{
printCFB(9);
}
}