← 返回首页
JavaSE系列教程(十四)
发表时间:2019-12-16 13:07:24
讲解Java中如何定义和调用方法以及形参和实参。

所谓方法(Method):就是具有独立功能的一段代码。

1.方法的定义

方法的第一通常遵循以下形式。

[访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…)
{
    方法体
}

修饰符: public 、static 被称为修饰符(后续章节会详细讲解它们);

返回值类型: 用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;

方法名: 它作为调用时引用方法的标识;

参数列表: 方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。

方法体: 它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。

return 表达式: 这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相匹配。

形式参数:在方法被调用时用于接受外部传入的变量

参数类型:就是该形式参数的数据类型

返回值:方法在执行完毕后返回给调用它的程序的数据

返回值类型:方法要返回的结果的数据类型。

可以看出,==一个方法最起码由以下四个部分组成。分别是:方法名字、参数列表、方法体和返回值类型(构造方法除外)。==

例如:以下方法。void是返回值类型,fn是方法名字,()是参数列表,{}是方法体。


void fn(){

}

在还没有正式讲解类和对象之前,我们暂时把所有的方法定义为public static 修饰的。方便我们去调用使用。

例如:分别定义一个求圆的面积和周长的方法,并且在主方法中调用输出结果。

public class Test {

    public static double getArea(int r){
        return Math.PI*r*r; //
    }

    public static double getCircle(int r){
        return 2*Math.PI*r;
    }

    public static void main(String[] args) {

        int r;
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入圆的半径:");
        r = sc.nextInt();

        //Math.round()是取整函数。
        System.out.println("圆的周长是:" + Math.round(getCircle(r)));
        System.out.println("圆的的面积是:" + Math.round(getArea(r)));

    }
}

2.方法调用

所谓调用方法,其实就是给方法的入口传入一些值(参数),然后在出口得到方法执行的结果(返回值)。给方法传入参数的过程,称为“传参”。

所谓形参就是方法定义处的参数。 所谓实参就是方法调用处的参数。

==方法调用的过程就是把实参赋值给对应的形参并执行方法的过程。实参和形参的数量、类型必须匹配,方法执行过程中形参的改变不影响实参。==

例如:

public class Test {

    public static void swap(int x,int y){  //这里是方法定义,所以x,y是形参
        int temp;
        temp = x;
        x = y;
        y = temp;
        System.out.println("in swap: x=" + x);
        System.out.println("in swap: y=" + y);
    }

    public static void main(String[] args) {

        int x = 10;
        int y = 7;
        swap(x,y); //这里是方法调用,所以x,y是实参。
        System.out.println("x=" + x);
        System.out.println("y=" + y);

    }
}

运行结果:
in swap: x=7
in swap: y=10
x=10
y=7

//说明形参的改变不影响实参。