Java方法的认识

目录

一、什么是方法

二、方法的设置

三、方法的重载

四、递归的使用


一、什么是方法


在外看来,由一定C语言基础的同学,一定知道什么是函数,那么JAVA中的方法就是C语言的函数

方法的好处:

1. 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ).
2. 做到代码被重复使用 , 一份代码可以在多个位置使用 .
3. 让代码更好理解更简单 .
4. 直接调用现有方法开发 , 不必重复设计方法 .

方法的使用注意:

1.分别实参与形参,对形参的修改,实参无影响

2.方法存在重载的概念,即方法名可以重复

3.

二、方法的设置

方法的定义:

    public static int Sum_Fun(int a, int b){

        return (a + b);
    }
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        int ret = Sum_Fun(a, b);
        System.out.println(ret);
    }

简单的分析:

 方法定义的要求:

1.方法名可以重复使用,这样的操作叫重载,在后面我会解释

2.方法的定义必须在类内

3.方法不能嵌套定义

4.返回值的设置必须一致,若无返回值则为必须为void

三、方法的重载

重载的定义Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了

使用重载的注意项:

1. 方法名必须相同
2. 参数列表必须不同 ( 参数的个数不同、参数的类型不同、类型的次序必须不同 )
3. 与返回值类型是否相同无关

重载的要求:

1.方法名相同

2.参数类型不同:

    public static int Sum_Fun(int a, int b){

        return (a + b);
    }
    public static double Sum_Fun(double a, double b){

        return (a + b);
    }

3.参数顺序不同:

    public static double Sum_Fun(int a, double b,double c){

        return (a + b + c);
    }
    public static double Sum_Fun(double a, double b,int c){

        return (a + b + c);
    }

4.参数个数不同;

    public static double Sum_Fun(double b,double c){

        return ( b + c);
    }
    public static double Sum_Fun(double a, double b,double c){

        return (a + b + c);
    }

为什么存在方法重载:从上面的实例中我们,知道如果计算int类型的和我们需要设置一个方法,设置double类型的和也需要重新设置一个方法,这样就会让我们的方法繁多但函数设置相似,造成方法的使用繁琐。

四、递归的使用

什么是递归:在我看来递归就是,在方法的是一种在使用自己,问题的规模不断缩小,分解成类型相同的问题。

递归的条件:1.不断分解问题 (将问题的规模减小)2. 不断接近返回条件

递归的使用:

例:使用factor方法来计算n的阶乘:

public class Main {

    public static int factor(int n){
        if(n==1){
            return 1;
        }
        int ret = n*factor(n-1);
        return ret;
    }

    public static void main(String[] args) {
	// write your code here
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = factor(n);
        System.out.println(ret);
    }
}

分析:

在使用递归的方法中,有递,有归,不断的分解问题,并且在遇到终止条件时,可以回溯问题的解

在下面的图中,红色是不断的分解问题,绿色则是返回小问题的解

 

递归与循环:在这两种方法中,它们各有缺点,也可以相互替换

递归方法:

1.递归如果没有终止条件,极有可能造成内存益处

2.递归的计算中,可能会出现重复的计算,浪费CPU的处理

3.递归的代码行短少,逻辑清晰

循环方法:

1.效率更高,内存的占用少

2.理解比较简单

我选择了比较最为明显的斐波那契数列:

比较运算时间:

fib1是使用递归方法,fib2是循环方法我们可以比较出循环比递归要快的多!!

 

一、循环方法

   public static int fib2(int n) {
        if(n ==1 || n ==2){
            return 1;
        }
        int a =0, b =1;
        int ret =0;
        while(n>=2){
            ret = a+b;
            a = b;
            b = ret;
            n--;
        }
        return ret;
    }

二、递归方法

    public static int fib1(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        return fib1(n - 1) + fib1(n - 2);
    }

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山山人行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值