目录

  • 什么是方法(也叫函数)
  • 方法的重载
  • 方法的递归


什么是方法(也叫函数)

就是用来解决一类问题的代码的有序组合,是一个功能模块。

修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2]){
    执行语句
    ....
    return 返回值;
}

语法格式说明如下:

  • 修饰符:方法的修饰符有好多,有对访问权限进行限定,有静态修饰符static,最终修饰符final。
  • 方法名:自定义的方法名,尽量见名知意,命名规则和变量一样。
  • 返回值类型:也就是方法返回的数据类型。
  • 参数类型:用于限定调用方法是传入的数据类型。
  • 参数名:就是一个变量,用于接收调用方法时传入的数据。
  • return关键字:用于结束方法以及返回值指定类型的值。
  • 返回值:被return关键字返回的值,方法结束后将返回值返回给调用者。

示列:

public class Example03 {
    public static void main(String[] args) {
        //调用getArea()方法
        int area = Example03.getArea(10, 20);
        System.out.println("该矩形的面积为:" + area);
    }

    //定义一个静态计算矩形的面积方法,接收两个参数x,y
    public static int getArea(int x, int y) {
        //计算结果
        int temp = x * y;
        //返回结果
        return temp;
    }
}

运行结果:200

方法的重载

什么是方法的重载:就是在一个类中定义多个名称相同的方法,但参数的类型或个数必须不同,这就是方法的重载
例如:计算两个数之和,三个数之和

public class Example03 {
    public static void main(String[] args) {
        //调用方法add01方法
        int sum1 = Example03.add01(10, 20);
        //调用方法add02方法
        int sum2 = Example03.add02(10, 20, 30);
        System.out.println(sum1);
        System.out.println(sum2);
    }

    //求两个数的和
    public static int add01(int x, int y) {
        return x + y;
    }

    //求三个数的和
    public static int add02(int x, int y, int z) {
        return x + y + z;
    }
}

在上面的代码可以看出,针对每一种求和的情况都要定义一个方法,每个方法的名称都不一样,在调用的时候很难区分那种情况调用哪个方法。看下面的例子:

public class Example03 {
    public static void main(String[] args) {
        //调用add方法
        int sum01 = Example03.add(10, 20);
        //调用add方法
        int sum02 = Example03.add(10,20,30);
        System.out.println(sum01);
        System.out.println(sum02);
    }
    //求两个数的和
    public static int add(int x,int y){
        return x + y;
    }
    //求三个数的和
    public static int add(int x,int y,int z){
        return x + y + z;
    }
}

从上面的例子可以看出在Example03类中定义两个名字相同的方法,只是参数个数或类型不同,从而形成了方法重载。方法的重载与返回值类型无关,重载只需要瞒足两个条件

  • 方法名称相同
  • 参数个数或者参数类型不同

方法的递归

方法的递归指的是在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用

public class Example04 {
    public static void main(String[] args) {
        int sum = Example04.getSum(5);
        System.out.println(sum);
    }
    public static int getSum(int x){
        //满足条件递归结束
        if (x == 1){
            return 1;
        }
        int temp = getSum(x - 1);
        return temp + x;
    }
}