方法创建方法方法的结构: 修饰符返回值类型方法名(参数列表) { //方法体 }方法头指定方法的修饰符、返回值类型、方法 名和参数。创建方法例如:publicstaticintmax(intnum1,intnum2){i f(num1>num2)returnnum1;elsereturnnum2;}创建方 法修饰符是可选的,它指定了方法的属性并且告诉编译器该方法可以如何调用。方法可以返回一个值。返回值类型是方法要返回的值的数据类型 。若方法不返回值,则返回值类型为关键字void。除构造方法外,所有的方法都要求有返回值类型。方法可以有一个参数列表,按方法的规范 称为形式参数。当方法被调用时,形式参数用变量或数据替换,这些变量或数据称为实际参数。参数是可选的。方法体包括一个定义方法做什么的 语句集合。创建方法有返回值的方法要求有关键字return,而返回值类型为void的方法则可以没有。返回值类型为void类 型的方法也可以使用return语句,用来终止方法并返回该方法的调用者。执行return语句后方法终止。调用方法根据方法是否有返 回值,通常有两种途径调用方法:如果方法返回一个值,对方法的调用通常就当做处理一个值。如:intlarger=max(3, 4);如果方法返回void,对方法的调用必定是一条语句。如:System.out.println(“WelcometoJa va!”);调用方法当程序调用方法时,程序控制转移到了被调用的方法中。执行return语句或遇到方法结束的右括号时,被调用方 法将程序控制还给调用者。例如: voidmethod1() {System.out.println(method2()) ;} intmethod2() {inti=method3();returni;} intmethod3() {return10;}调用方法例测试max方法这个例子演示怎样创建和调用max方法。源程序:TestMax.jav a参数传递方法的威力是它处理参数的能力。调用方法时,需要提供实参,它们必须在类型、次序和数量上与方法中所对应的形参匹配,这叫做 参数顺序匹配。参数传递例如:voidnPrintln(Stringmessage,intn){for (inti=0;i(“Hello”,3)把实参“Hello”传给形参message,把3传给n,然后打印3遍“Hello”。语句nPrintln( 3,”Hello”)就是错误的,因为实参和形参不匹配。参数按值传递在调用带参数的方法时,实参的值复制到方法中称为按值传递。无论 方法中的形参怎样变化,方法外的实参不受影响。例4.2测试按值传递 本程序证实方法中的参数传递是按值传递的。 源程序:T estPassByValue.java练习编写方法,求三个整数的平均值,平均值的类型要求为双精度浮点型。在main方法中测 试这个方法。重载方法方法重载就是指,两个方法具有相同名称和不同的参数形式。方法名与参数形式合称方法头标志。调用方法时,J ava运行系统能够根据方法头标志决定调用哪个方法。重载方法可使程序清晰易读。执行相似任务的方法应该给予相同的名称。被重载的 方法必须具有不同的参数形式。不能基于不同的修饰符或返回值类型重载方法。重载方法例4.3重载max方法doublema x(doublenum1,doublenum2){if(num1>num2)returnnum 1;elsereturnnum2;}与前面的max方法同名,但参数形式不同。练习重载上一个求整数平均值的 方法,实现对求三个任意数值类型数的平均值。在main方法中测试这个重载的方法方法抽象方法抽象是把方法的应用同实现分离开来。在 不知道方法如何实现的情况下,用户也可以使用方法。如果要改变方法的实现,只要不改变方法头标志,提供给用户的程序就不受影响。例子 一个根据员工基本计算工资的程序:publicclassTest{publicstaticvoidmain(S tring[]args){ intlevel=0; System.out.println(“等级”+level+” 的工资是:”+salary(level));}}例子salary方法定义:staticintsalary(i ntlevel){switch(level){ case0:return1000; c ase1:return2000; case2:return2500; defaul:return0; }}练习编写方法求一个double数值的向右取整,再写一个方法求它向左取整。比如:5.4的向右取整为6,而向左取整 为5;而5.0的向右取整为5,向左取整也为5。写一个方法计算一个整数各位数字的和,使用下面的方法说明:publicstaticintsumDigits(longn)比如:sumDigits(234)返回2+3+4=9 |
|