一、创建方法
- 一般情况下,定义一个方法包含以下语法:
-
modifier returnValueType methodName(list of parameters) { // Method body; }
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
- 修饰符(modifier):修饰符,这是可选的,定义了该方法的访问类型。
- 返回值类型(returnValueType) :方法可以将处理的结果返回给调用者(其它对象)。returnValueType是方法返回值的数据类型。如果方法不提供返回值,returnValueType必须是关键字
void
。 - 方法名(methodName):是方法的实际名称。方法名和参数列表共同构成方法签名。
- 参数列表(list of parameters):参数列表是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
例如,下面的方法根据用户的生日计算用户的年龄:
public static int age(int birthday) {...}
我们也可以为方法定义多个参数:
public static float interest(float principal, int year) {...}
注意: 在一些其它语言中方法指过程(procedure)和函数(function)。
2、调用一个方法
Java支持两种调用方法的方式,根据方法是否返回值来选择。
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger = max(30, 40);
如果方法返回值是
void
,方法调用一定是一条语句。例如,方法println()
的返回值为void
。下面的调用就是一条语句:System.out.println("Welcome to Java!");
代码示例
下面的例子演示了如何定义一个方法,以及如何调用它:
public class MaxInteger { /** 主方法 */ public static void main(String[] args) { int i = 5, j = 2; int k = max(i, j); System.out.println("介于" + i + "和" + j + "之间的最大值为" + k); } /** 返回两个整数变量较大的值 */ public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; } }
运行结果如下:
介于5和2之间的最大值为5
这个程序包含
main
方法和max
方法。main方法是被JVM调用的,除此之外,main方法和其它方法没什么区别。main方法的头部是不变的,如例子所示,带修饰符
public
和static
,返回void
类型值,方法名字是main,此外带个一个String[]类型参数。String[]表明参数是字符串数组。
3、void关键词
本节说明如何声明和调用一个void
方法。
下面的例子声明了一个名为printGrade()
的方法,并且调用它来打印给定的分数。
代码示例
public class GradeDemo { public static void main(String[] args) { printGrade(78.5); } public static void printGrade(double score) { if (score >= 90.0) { System.out.println('A'); } else if (score >= 80.0) { System.out.println('B'); } else if (score >= 70.0) { System.out.println('C'); } else if (score >= 60.0) { System.out.println('D'); } else { System.out.println('F'); } } }
以上实例编译运行结果如下:
C
这里printGrade
方法是一个void
类型方法,它不返回值。
一个void
方法的调用一定是一个语句。所以,它在main方法第三行以语句形式被调用。而调用的方式与其它任何以分号结束的语句一样。