Java中的方法简介

方法的基本用法
基本语法:

//方法定义
public static 方法返回值 方法名称 ([参数类型 形参 ...]) {
    方法体代码;
    [return 返回值];
}

//方法调用
返回值变量 = 方法名称(实参...);

//代码示例:实现一个方法实现两个整数相加
class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        //方法的调用
        int ret = add(a,b);
        System.out.println("ret = " + ret);
    }
    //方法的定义
    public static int add(int x, int y) {
        return x + y;
    }
}

//执行结果
ret = 30

注意事项:

  1. public和static两个关键字在此处有特定含义,必须编写
  2. 方法定义时,参数可以没有,每个参数必须要指定类型
  3. 方法定义时,返回值也可以没有,没有返回值时,返回值类型写成void
  4. 与C语言中函数类似,方法定义时的参数为"形参",方法调用时参数为"实参"
  5. 方法的定义必须在类之中,代码书写在调用位置的上下均可
  6. Java中没有"函数声明"这样的概念
  7. 当方法被调用的时候,会将实参赋值给形参,对于基础类型来说,形参相当于实参的拷贝,即传值调用
  8. 参数传递完毕后,就会执行到方法体代码

方法的重载

//代码示例
class Test {
    public static void main(String[] args) {
        int a1 = 10;
        int b1 = 20;
        int ret1 = add(a1,b1);
        System.out.println("ret1 = " + ret1);

        double a2 = 10.5;
        double b2 = 20.5;
        double ret2 = add(a2,b2);
        System.out.println("ret2 = " + ret2);

        double a3 = 10.5;
        double b3 = 10.5;
        double c3 = 20.5;
        double ret3 = add(a3,b3,c3);
        System.out.println("ret3 = " + ret3);
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
     public static int add(double x, double y, double z) {
        return x + y +z;
    }
}

方法的名字都叫add,但是有的add是计算int相加,有的是double相加;有的是两个数相加,有的是三个数相加。同一个方法名字,提供不同版本的实现,就称为方法重载。

重载规则: 方法名相同,方法的参数不同(类型或者个数),方法的返回值类型不影响重载。当两个方法的名字相同,参数也相同,但是返回值不同的时候,不构成重载。

方法的递归
一个方法在执行过程中调用自身,就称为"递归"

//代码示例:递归求N的阶乘
public static void main(String[] args) {
    int n = 5;
    int ret = factor(n);
    System.out.println("ret = " + ret);
}
public static int factor(int n) {
    if (n == 1) {
       return 1;
    }
    return n * factor(n - 1);//factor调用方法自身
}

//执行结果
ret = 120

递归是一种重要的编程解决问题的方式,有些问题天热就是使用递归方式定义的(例如斐波那契数列,二叉树等),此时使用递归来解就很容易,有些问题使用递归和非递归(循环)都可以解决,那么就推荐使用非递归,相比于递归,非递归程序更加高效。

发布了30 篇原创文章 · 获赞 31 · 访问量 1949

猜你喜欢

转载自blog.csdn.net/CCCC_CSDN_LI/article/details/105516442