课时28:方法的定义
在程序之中很多情况下是有可能需要重复执行一些代码的。举个简单的例子,假如你要补办身份证,需要先登记挂失,然后申请补办,最后交钱。如果把这些操作比喻成可以重复调用的代码,那么只要通过正规途径,任何人都可以按照这些代码完成补办。这些操作就是可以重复调用的代码。
比如说,在 Windows 界面中,每个窗口都有一个关闭按钮,如果每次都要单独编写关闭代码,维护起来会非常麻烦。因此, Windows把关闭操作定义成了一个特定的函数,这样大家就可以直接调用,而不用再自己编写代码。
在一些书中,方法( Method )和函数( Function )被认为是完全等价的概念,没有什么所谓的“到底什么是方法,什么是函数”的区别。需要注意的是,本次方法定义有一个前提:方法必须在主类中定义,并且由主方法直接调用。因为 Java 的语法限制较为严格。
方法的基本定义
我再次强调, Java 中的方法定义相对复杂。如果我现在直接把所有关键字都给你,你可能很难理解,所以不必急于求成,要逐步学习。首先需要理解的是,方法可以被重复调用。
本次的方法是定义在主类之中并且由主方法直接调用到的,所以方法定义的语法形式如下:
Public static 返回值类型 方法名称([参数类型 变量,—……]){ //该方法要执行的代码 [return[返回值];] }
对于返回值而言就可以使用 Java 中定义的数据类型了(基本数据类型、引用数据类型),在方法之中可以进行返回数据的处理,如果要返回数据,则可以使用Return 来描述,Return 所返回的数据类型与方法的返回值类型相同,如果不返回数据,则该方法可以使用Void的进行声明。
关于方法名称与变量定义命名要求:
在进行方法名称定义的时候要求第一个单词的字母小写,而后每个单词的首字母大写;
在进行变量名称定义的时候要求第一个单词的字母小写,而后每个单词的首字母大写;
范例: 定义一个无参无返回值的方法
public class JavaDemo { public static void main(string args[]) { printMessage();//执行方法调用 printMessage();//执行方法调用 } public static void printMessage(){//该方法包含了三行代码 system.out.println(“********************”); system.out.println(“* www.mldn.cn *”); system.out.println(“********************”); } }
计算结果:
方法的本质就是方便使用者进行重复的调用,并且所有的程序一定都是通过我们主方法开始执行的。
假设黑色方框代表一个方法,旁边是主方法,主方法中有逐行代码,这些代码按从上到下的顺序执行。如果要调用方法,调用完成后会返回并继续向下执行。简单来说,就是执行到方法调用时,跳转到方法内部执行,执行完毕后返回调用点,继续执行后续代码。这就是方法的正常执行流程。
因此,一定要记住,所有方法的执行都始于其调用处,程序从主方法开始,按顺序依次向下执行。这就是无参无返回值方法的特点。
范例:定义一个有参有返回值的方法
public class JavaDemo { public static void main(string args[]) { system.out.println(get(20.0)); system.out.println(get(1.0)); public static string get(double money){ if(money>=10.0){ return“给你带一份快餐,找零:”+(money-10.0); }else{ Return“对不起,您的余额不足,请先充值,或者捡漏。” } } }
public class JavaDemo { public static void main(string args[]) { string result =get(20.0); system.out.println(result); system.out.println(get(1.0));//返回值可以直接输出 public static string get(double money){ if(money>=10.0){ return“给你带一份快餐,找零:”+(money-10.0); }else{ Return“对不起,您的余额不足,请先充值,或者捡漏。” } } }
计算结果:
对于方法本身而言,其意义非常简单,但你们可能会问:“老师,我该用什么来定义方法?”记住,设计方法的最简单过程是:在编写代码的过程中,如果发现某些代码片段不断被复制和粘贴,那么你应该考虑将其定义为一个方法,以便下次使用。
在进行方法定义的时候,如果方法的返回值类型为 Void ,那么可以利用Return来结束调用。我们在循环控制中使用两个语句: Break 和 Continue 。 Continue 的作用是结束当前循环的这一次迭代。实际上, Return 可以实现类似的效果。
范例:使用Return结束方法调用
public class JavaDemo { public static void main(string args[]) { sale(3); sale(-3); public static void sale(int money){ if(money<=0){ //余额不足 return;//后续代码不执行了 for(int x =0;x<miney;x++){ system.out.println(”王健开笑,第“+x+”次”); } } }
计算结果:
王健开笑,第1次
王健开笑,第1次
王健开笑,第1次
从定义的语法来讲方法并不是一个难以理解的概念,就是一段可以被重复调用的一一块代码而已。但是良好的方法设计是需要根据你实际的开发经验慢慢累积的,但是请千万记住一点:在 Java 定义方法的时候,一般都不可能太长。很少会看到一个方法有几百行代码,因此,我们通常不要把方法写得过于复杂,而应该在方法层面进行进一步的拆分。