黑马程序员-Java基础学习(函数)
来源:互联网 发布:音频矩阵 编辑:程序博客网 时间:2024/06/05 20:43
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、函数的定义
1、什么是函数
l 函数时定义在类中有特定功能的独立小程序,也称为方法。
l 当程序中一部分代码需要重复的出现时,为了提高代码的复用性,对代码进行抽取。将这个部分定义成一个独立的功能,方便与日后使用。而在java中对功能的定义是通过函数的形式来体现的。此时就用到了函数。
2、函数的基本结构
修饰符返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return返回值;
}
² 返回值类型:函数结束后返回的结果的数据类型。
² 函数名:函数的名称要有意义,要体现出函数的功能。
² 参数类型:就是形式参数的数据类型。
² 形式参数:是一个变量,用于存储调用函数是传递给函数的实际参数。
² 实际参数:传递给形式参数的具体数值。
² return:结束函数。
² 返回值:返回给调用者的值。
二、函数的特点
Ø 定义函数可以将功能代码进行封装。(这样主函数只需要调用其它函数就可以实现函数的功能)
Ø 便于对该功能进行复用。(只需要调用该函数即可实现函数功能)
Ø 函数只有被调用才会被执行。
Ø 函数的出现提高了代码的复用性。(定义的函数可以反复被调用)
Ø 如果函数没有具体的返回值,返回值类型要用关键字void表示,而如果该函数的return语句在函数的最后以行就可以省略不写。
Ø 函数与函数之间是平级关系,所以函数内部只能调用其它函数,而不能定义函数。
下面举例对函数的特点进行说明:
例一,
publicstatic void main(String[] args) {
// TODO Auto-generated methodstub
int x =4;
System.out.println(x+1);
x = 6;
System.out.println(x+1);
}
发现上边的运算,因为需要获取不同数据的“+1”以后的结果,所以代码出现了重复。为了提高代码的复用性。我们对部分代码进行抽取。将这个部分定义成一个独立的功能(函数)。如下,
publicstatic void main(String[] args) {
// TODO Auto-generated methodstub
int y=getHe(4);
System.out.println("y="+y);
}
public static int getHe(int x)
{
return x+1;
}
上边这段代码中定义的函数getHe的功能就是对用户提供的数字进行“+1”运算,然后将运算的结果返回给调用它的main函数,这样就实现了代码和功能的复用性。
例二,
publicstatic void main(String[] args) {
// TODO Auto-generated methodstub
getHe(3);
}
public static void getHe(int x)
{
System.out.print("和为"+(x+1));
return ;
}
上面这段代码中,函数getHe没有给main函数返回值,而是直接在自己的函数体中打印了自己的计算结果,所以这种情况向返回值类型要用关键字void表示,且最后一行的return也可以不写。
注:例二中的代码存在一个问题需要着重注意一下:这个功能定义思想是有有问题的,毕老师教育我们说,如果它的功能只为完成加法运算,至于是否要对和进行打印操作,那是调用者的事,不要在该功能中完成。
三、函数的应用
借用毕老师的话,我们在编写程序其实就是在不断的实现功能,而java中最小的功能单元就是函数。所以我们在写代码的时候涉及到处理和定义功能时,要把它定义到一个独立的函数中去,而不要把所有的代码都堆到主函数当中。这样只需要在主函数当中调用就可以了,从而实现了代码和功能的复用性。
如何定义一个函数
第一步:既然函数是一个独立的功能,那么该功能的运算结果是什么先明确,因为这是在明确函数的返回值类型。
第二部:明确在定义该功能的过程中是否需要未知的内容参与运算,因为是在明确函数的参数列表(参数的类型和参数的个数)。
例,功能需求:定义一个功能,用于打印矩形。
思路:
1,确定结果:没有,因为直接打印。所以返回值类型是void
2,有未知内容吗?有,两个,因为矩形的行和列不确定。
public static void main(String[] args) {
//TODO Auto-generated method stub
JuXing(4,5);
}
publicstatic void JuXing(int hang,int lie)
{
for(intx=0; x<hang; x++)
{
for(inty=0; y<lie; y++)
{
System.out.print("*");
}
System.out.println();
}
四、函数的重载
重载的概念:在一个类中可以存在一个或多个名称相同的函数,但是这些函数的参数个数或参数类型必须不同。(重载的函数功能相同,但是参与功能的变量不同)如,
例1,
//定义一个加法,计算两个int变量的和。
publicstatic int He(int x,int y)
{
return x+y;
}
//定义一个加法,计算三个int变量的和。
public static int add(int x,int y,int z)
{
return x+y+z;
}
有这段代码可以看出,其中的两个函数的名称相同,但是他们当中的参数的个数并不相同,因此他们是可以并存的。
例2,
//打印99乘法表
publicstatic 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乘9的乘法表。当用户调用print99(5)时,上边的函数响应,乘法表只会打印到5乘5.而这段代码还可以进一步优化,如下
publicstatic 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()
{
print99(9);
}
这样当用户调用print99()时,下边的函数响应,他又去调用print99(9),第一个函数相应,从而完成9乘9的乘法表打印。
- 黑马程序员-Java基础学习(函数)
- 黑马程序员---JAVA基础---函数(三)
- 黑马程序员-----java基础(三):函数
- 黑马程序员JAVA基础-函数
- 黑马程序员---java基础----函数
- 黑马程序员 -- Java基础学习(1)
- 黑马程序员 -- Java基础学习(2)
- 黑马程序员 -- Java基础学习(3)
- 黑马程序员 -- Java基础学习(4)
- 黑马程序员 -- Java基础学习(5)
- 黑马程序员 -- Java基础学习(6)
- 黑马程序员 -- Java基础学习(7)
- 黑马程序员 -- Java基础学习(8)
- 黑马程序员 -- Java基础学习(9)
- 黑马程序员 -- Java基础学习(10)
- 黑马程序员 -- Java基础学习(11)
- 黑马程序员-Java基础学习(数组)
- 黑马程序员 JAVA基础学习笔记 主函数等
- Android代码中实现WAP方式联网
- [LeetCode]Maximum number of points on a straight line in 2d plane
- C++ enum的使用
- Lock与synchronized
- Opengl学习笔记:(一).Ply文件文件格式和文件读取
- 黑马程序员-Java基础学习(函数)
- Java实现多项式
- 天题之Regular Expression Matching
- Fir平台上自动更新app的版本
- String类常用功能
- meanShift算法介绍
- 如何开发一个仿微信的 Web IM?
- 第17课时,自测
- opengGL深度测试介绍及代码测试