您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 3.3方法的声明及使用
方法的声明及使用本节目标掌握方法的作用、定义格式掌握方法重载的概念及使用可以使用return结束一个方法掌握方法的递归调用方法的定义方法就是一段可重复调用的代码段例如:有某段长度约100行的代码,要在多个地方使用此段代码,如果在各个地方都重复编写此部分代码的话,则肯定会比较麻烦,而且此部分代码如果修改的话也比较困难,所以此时可以将此部分代码定义成一个方法,以供程序反复调用。方法的定义方法的定义格式:publicstatic返回值类型方法名称(类型参数1,类型参数2,…){方法的主体程序语句;[return表达式];}在本节中定义的方法,因为其可以直接使用主方法(main())调用,所以将方法声明处加上了publicstatic两个关键字方法的主体定义一个方法,在主方法中进行调用publicclassMethodDemo01{publicstaticvoidmain(String[]args){printInfo();//调用printInfo()方法printInfo();//调用printInfo()方法printInfo();//调用printInfo()方法System.out.println(HelloWorld!);}//此处由于此方法是由main方法直接调用所以一定要加上publicstaticpublicstaticvoidprintInfo(){//此处方法没有返回值charc[]={'H','e','l','l','o',',','L','X','H'};//定义一个字符数组for(intx=0;xc.length;x++){//循环输出System.out.print(c[x]);}System.out.println();//换行}}printInfo()方法执行流程图当调用printInfo()方法的时候,程序就会跳转到printInfo()方法中执行,当printInfo()方法全部执行完之后就会返回调用处向下继续执行注意:方法命名规范要求在之前定义类的时候,曾讲过类的命名规范:“全部单词的首字母必须大写”。那么在定义方法的时候也是有命名规范要求的:“第一个单词的首字母小写,之后每个单词的首字母大写”,那么这就是方法的命名规范,之前的printInfo()方法也是按此规范定义的。这一点希望在日后的开发中养成好的习惯。有返回值的方法publicclassMethodDemo02{publicstaticvoidmain(String[]args){intone=addOne(10,20);//调用整数的加法操作floattwo=addTwo(10.3f,13.3f);//调用浮点数的加法操作System.out.println(addOne的计算结果:+one);System.out.println(addTwo的计算结果:+two);}//定义方法,完成两个整数的加法操作,方法返回一个int型数据publicstaticintaddOne(intx,inty){inttemp=0;//temp为局部变量,只在此方法中有效temp=x+y;//执行加法计算returntemp;//返回计算结果}//定义方法,完成两个浮点数的加法操作,方法返回一个float型数据publicstaticfloataddTwo(floatx,floaty){floattemp=0;//temp为局部变量,只在此方法中有效temp=x+y;//执行加法计算returntemp;//返回计算结果}}方法的重载方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用。验证方法的重载publicclassMethodDemo03{publicstaticvoidmain(String[]args){intone=add(10,20);//调用有两个参数的整型加法inttwo=add(10,20,30);//调用有三个参数的整型加法floatthree=add(10.3f,13.3f);//调用有两个参数的浮点型加法System.out.println(add(intx,inty)的计算结果:+one);System.out.println(add(intx,inty,intz)的计算结果:+two);System.out.println(add(floatx,floaty)的计算结果:+three);}publicstaticintadd(intx,inty){//定义add方法,完成两个整数相加inttemp=0;//定义局部变量temp=x+y;//执行加法计算returntemp;//返回计算结果}publicstaticintadd(intx,inty,intz){//定义add方法,完成三个整数相加inttemp=0;//定义局部变量temp=x+y+z;//执行加法操作returntemp;//返回计算结果}publicstaticfloatadd(floatx,floaty){//定义add方法,完成两个浮点数相加floattemp=0;//定义局部变量temp=x+y;//执行加法操作returntemp;//返回计算结果}}方法重载的调用从程序中可以发现add()方法被重载了三次,而且每次重载时的参数类型或个数都有不同,所以在调用的时候,会根据参数的类型和个数自动进行区分。提示:System.out.println()方法也属于重载方法对于屏幕打印语句:System.out.print()方法来说可以打印任何的数据:System.out.println(3);//输出整数System.out.println(33.3);//输出浮点数System.out.println('3');//输出字符System.out.println(true);/输出布尔型System.out.println(3+3);/输出计算结果重载的注意事项方法的重载一定只是在参数上的类型或个数不同,而下面的代码根本不叫方法重载:publicstaticfloatadd(intx,inty){//返回float型,但参数类型及个数一致floattemp=0;temp=x+y;returntemp;}publicstaticintadd(intx,inty){//返回int型,但参数类型及个数一致inttemp=0;temp=x+y;returntemp;}使用return结束一个方法在java的方法定义中,可以使用return语句直接结束方法,如下所示。publicclassMethodDemo05{publicstaticvoidmain(String[]args){System.out.println(1、调用fun()方法之前。);fun(10);//调用fun()方法System.out.println(2、调用fun()方法之后。);}publicstaticvoidfun(intx){System.out.println(3、进入fun()方法。);if(x==10){return;//结束方法,返回被调用处}System.out.println(4、正常执行完fun()方法。);}}方法的递归调用递归调用是一种特殊的调用形式,是方法自己调用自己递归调用——数字的累加操作publicclassMethodDemo06{publicstaticvoidmain(Stringargs[]){System.out.println(计算结果:+sum(100));//调用操作}publicstaticintsum(intnum){//定义方法用于求和操作if(num==1){//判断是否是加到了最后一个数return1;}else{returnnum+sum(num-1);//递归调用}}}下一节内容数组
本文标题:3.3方法的声明及使用
链接地址:https://www.777doc.com/doc-3951668 .html