----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
1,函数概述:
在每一个计算机语言中都有函数的影子,JAVA也不例外,不过在Java中不再叫函数而是改为叫方法了,不过我们还是把它当作函数来讲
函数定义:程序中特定的一段功能小程序
2,函数格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,。。)
{ 执行语句;
return 返回值;
}
修饰符:用来修饰函数权限的,有public,private,protract
返回值类型为函数运行后的数据类型,参数类型为形参的数据类型,
形式参数也就是形参,它就是个非确定值的变量,这里与形参相比较的实参则是确定的参数
retuen :如果你的返回值类型为VOID则不需要进行return的
3,函数的特点
1,定义函数可以将功能代码进行封装,体现了Java的封装性
2,定义函数可以提高代码的复用性,便于使用,可对功能进行复用
3,函数需要被调用才能被执行,否则就是一段没用的代码
4,无返回值类型的函数用void修饰,这样就可以省略函数中的return
5,函数中不可以定义函数(内部类除外),但函数之间可以互相调用
4,函数的作用
作为主函数:
1,确保该程序的运行
2,1个程序的入口,没有主函数就没法找到入口,那程序就失效了
3,在JVM中被调用
其他函数:
1,用于定义功能
2,进行封装,提高代码的复用性
注意:函数中只能调用函数,不能定义函数,函数名要明确,这样可以增加代码的阅读性
5,函数的应用
1,两个明确:
明确定义的功能最后的结果是什么?
明确在定义该功能的过程中是否需要未知内容参与运算
2,示例
修改前
class FunctionDemo
{
public static void main(String[] args)
{
int x = 4;
System.out.println(x*3+5);
x = 6;
System.out.println(x*3+5);
int y = 4*3+5;
int z = 6*3+5;
System.out.println(y);
System.out.println(z);
}
}
发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
为了提高代码的复用性。对代码进行抽取。将这个部分定义成一个独立的功能。方便与日后使用。
java中对功能的定义是通过函数的形式来体现的。
明确功能:需要定义功能,完成一个整数的*3+5的运算,
1,先明确函数定义的格式。
/*
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,)
{
执行语句;
return 返回值;
}
为了提高代码的复用性。对代码进行抽取。将这个部分定义成一个独立的功能。方便与日后使用。
java中对功能的定义是通过函数的形式来体现的。
明确功能:需要定义功能,完成一个整数的*3+5的运算,
1,先明确函数定义的格式。
/*
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,)
{
执行语句;
return 返回值;
}
修改后
class FunctionDemo
{
public static void getResult(int num)
{
System.out.println(num * 3 + 5);
return;//可以省略
}
public static void main(String[] args)
{
getResult(5);
}
}
3,练习
class FunctionTest
{
public static void main(String[] args)
{
draw(5,6);
printHr();
draw(7,9);
printHr();
print99();
}
/*
定义一个功能,用于打印矩形。
思路:
1,确定结果:没有,因为直接打印。所以返回值类型是void
2,有未知内容吗?有,两个,因为矩形的行和列不确定。
*/
public static void draw(int row,int col)
{
for(int x=0; x<row; x++)
{
for(int y=0; y<col; y++)
{
System.out.print("*");
}
System.out.println();
}
}
public static void printHr()
{
System.out.println("------------------------------");
}
/*
定义一个打印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();
}
}
}
6,函数的重载
1,定义:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
2,特点:
与返回值类型无关,只看参数列表。
3,好处:
方便与阅读,优化了程序设计。
4,重载示例
返回两个整数的和
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;}
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;}
5,重载范例
class FunctionOverload
{
public static void main(String[] args)
{
add(4,5);
add(4,5,6);
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();
}
}
//打印99乘法表
public static void print99()
{
print99(9);
}
//定义一个加法运算,获取两个整数的和。
public static int add(int x,int y)
{
return x+y;
}
//定义一个加法,获取三个整数的和。
public static int add(int x,int y,int z)
{
return add(x,y)+z;
}
}
区分是否重载只要看参数列表,和返回值类型无关
void show(int a,char b,double c){}
下面的a,b,c,d,e,f与上述一句的区别:
a.
void show(int x,char y,double z){}//没有,因为和原函数一样。
b.
int show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
c.
void show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
d.
boolean show(int c,char b){}//重载了,因为参数个数不同。
e.
void show(double c){}//重载了,因为参数个数不同。
f.
double show(int x,char y,double z){}//没有,这个函数不可以和给定函数同时存在与一个类中。
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------