java方法可以理解为是语句的集合,它们在一起执行一个功能。假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可m接下来通过一些案例来介绍方法在程序中起到的作用,先来看一下在不使用方法时如何实现打印三个长宽不同的矩形。
public class example1 {
public static void main(String[] args) {
//使用的循环是使用*打印一个宽为5、高为3的矩形
for (int i=0; i<3 ;i++ ) {
for (int j=0;j<5 ;j++) {
System.out.print("*");
}
System.out.print("\n");
}
System.out.print("\n");
//使用的循环是使用*打印一个宽为4、高为2的矩形
for (int i=0; i<2 ;i++ ) {
for (int j=0;j<4 ;j++) {
System.out.print("*");
}
System.out.print("\n");
}
System.out.print("\n");
//使用的循环是使用*打印一个宽为10、高为6的矩形
for (int i=0; i<6 ;i++ ) {
for (int j=0;j<10 ;j++) {
System.out.print("*");
}
System.out.print("\n");
}
System.out.print("\n");
}
}
运行结果
example1.java运行结果
在上面案例中,分别使用三个嵌套for循环完成了三个矩形的打印,仔细观察会发现,这三个嵌套for循环的代码是重复的,都在做一样的事情。此时,就可以将使用“*”打印矩形的功能定义为方法,在程序中调用三次即可,例如:example2.java。
public classe example2 {
public static void main(String[] args) {
printRectangle(3, 5);
printRectangle(2, 4);
printRectangle(6, 10);
}
public static void printRectangle(int height, int width) {
//下面使用嵌套for循环实现*打印
for (int i=0; i<height ;i++ ) {
for (int j=0;j<width;j++) {
System.out.print("*");
}
System.out.print("\n");
}
System.out.print("\n");
}
}
运行结果与example1.java运行结果相同。
在example2.java中定义了一个方法。其中{}内实现打印矩形的代码是方法体, printRectangle()是方法名, ()中的height和 width是方法的参数,方法名前面的void是方法的返回值类型。
在Java中,声明一个方法的具体语法格式如下:
修饰符 返回值类型 方法名 ([参数类型 参数名 1,参数类型 参数名 2,…]){
执行语句
…
return 返回值;
}
对于上面的语法格式具体说明如下。
修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍。
返回值类型:用于限定方法返回值的数据类型。
参数类型:用于限定调用方法时传入参数的数据类型。
参数名:是一个变量,用于接收调用方法时传入的数据。
return关键字:用于结束方法以及返回方法指定类型的值。
返回值:被return语句返回的值,该值会返回给调用者。需要特别注意的是,方法中的“参数类型参数名1,参数类型参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
由于example2.java中 printRectangle()方法没有返回值,接下来通过一个案例来法中有返回值的情况,例Example3.java
public classe example3 {
public static void main(String[] args) {
int area=getArea(3,5); //调用getArea方法
System.out.print("The area is"+area);
}
//下面定义了一个球矩形面积的方法,接收两个参数,其中x为高,y为宽
public static int getArea(int x,int y) {
int temp=x*y; //使用变量temp记住运算结果
return temp; //将变量temp的值返回
}
}
运行结果为:
The area is 15
example3.java中,定义了一个getArea()方法用于求矩形的面积,参数x和y分别用于接收调用方法时传入的高和宽,return语句用于返回计算所得的面积。在main(方法中通过调用getArea()方法,获得矩形的面积,并将结果打印。
在程序运行期间,参数x和y相当于在内存中定义的两个变量当调用getArea()方法时,传入的参数3和5分别赋值给变量x和y,并将x*y的结果通过return语句返回,整个方法的调用过程结束,变量x和y被释放。
推荐了解热门学科