Java基础精讲方法的使用

 更新时间:2022年05月07日 15:45:51   作者:菜菜不恰菜  
方法,也称函数,如果想要重复一段或者多段代码块的使用,可以将这些代码封装成一个方法,方法具体表现为某种行为,使用方法可以提高代码的复用性

一、方法

方法是什么?

在Java中方法就相当于C语言中的函数。因为有时候我们需要一块代码重复使用,这时候就可以使用方法。

为什么要用方法?

1. 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ).

2. 做到代码被重复使用 , 一份代码可以在多个位置使用 .

3. 让代码更好理解更简单 .

4. 直接调用现有方法开发 , 不必重复造轮子

方法的基本语法格式:

public static 返回类型 方法名称(形参列表){}

在这里要注意形参是实参的一份临时拷贝,形参并不能改变实参!!!

来看个例子:

public class TestModer {
public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("交换前"+"a = " + a + " b = " + b);
        swap(a, b);
        System.out.println("交换后"+"a = " + a + " b = " + b);
    }
    public static void swap(int x, int y) {
        int tmp = x;
        x = y;
        y = tmp;
    }
}

我们可以看看运行结果:

我们可以看到这里是传值调用,所以改变形参并不能改变实参。还有需要注意的就是在C语言中,被调用的函数需要放在调用函数前面,在Java中,方法的位置可以放前面也可以放后面,因为在Java中是从主函数开始执行的。

二、方法的重载

方法的重载是什么意思呢?我们通过一个例子来了解:

public class TestModer {
public static void main(String[] args) {
 int a = 10;
 int b = 20;
 int ret = add(a, b);
 System.out.println("ret = " + ret);
 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 double add(double x, double y, double z) {
 return x + y + z;
   }
}

在这里我们可以看到结果:

我们可以看看这三个方法,分别代表了两个整数的加法,两个浮点数的加法,三个浮点数的加法。这三个方法的方法名字都相同,第一个方法和第二个方法参数个数相同,第二个方法和第三个方法参数类型相同。

在C语言中同一个工程中每个函数函数名不能相同,但是Java中这里可以,同一个方法名字, 提供不同版本的实现, 称为 方法重载。

重载需要满足的条件:

1、方法名相同 。

2、方法的参数不同 ( 参数个数或者参数类型 ) 。

3、方法的返回值类型不做要求。

三、方法递归

递归是什么?

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

注意:

1、递归需要有个趋近于终止的条件,否则会无限循环。

2、每次执行会越来越接近这个条件。

递归执行过程是什么样的呢?来看看几个例题:

//输出一个整数的每一位,如:123的每一位是1 ,2 ,3
public class TestModer {   
public static void print(int n) {
        if (n < 10) {
            System.out.print(n + " ");
        } else {
            print(n / 10);
            System.out.print(n % 10 + " ");
        }
    }
    public static void main5(String[] args) {
        int num = 123;
        print(num);
    }
}

我们可以看到方法print自己调用自己的过程,每次执行时,n都越来越接近终止条件,这就是递归的一个过程。

//求斐波那契数列的第3项。(递归实现)
    public class TestModer {
    public static int fib(int num) {
        if(num==1||num==2){
            return 1;
        }
        else{
            return fib(num-1)+fib(num-2);
        }
    }
    public static void main(String[] args) {
        int n=3;
        int x=fib(n);
        System.out.println(x);
    }
}

四、小结

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

到此这篇关于Java基础精讲方法的使用的文章就介绍到这了,更多相关Java方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在java 8 stream表达式实现if/else逻辑

    如何在java 8 stream表达式实现if/else逻辑

    这篇文章主要介绍了如何在java 8 stream表达式实现if/else逻辑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Springboot拦截器如何获取@RequestBody参数

    Springboot拦截器如何获取@RequestBody参数

    这篇文章主要介绍了Springboot拦截器如何获取@RequestBody参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • springboot利用AOP完成日志统计的详细步骤

    springboot利用AOP完成日志统计的详细步骤

    项目用到了过滤器,可能有的人会不理解,之所以用过滤器是因为想要在日志记录post请求的json数据。本文重点给大家介绍springboot利用AOP完成日志统计的详细步骤,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结

    IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结

    今天小编就为大家分享一篇关于IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • SpringBoot启动执行sql脚本的3种方法实例

    SpringBoot启动执行sql脚本的3种方法实例

    在应用程序启动后,可以自动执行建库、建表等SQL脚本,下面这篇文章主要给大家介绍了关于SpringBoot启动执行sql脚本的3种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • springboot2.2.2集成dubbo的实现方法

    springboot2.2.2集成dubbo的实现方法

    这篇文章主要介绍了springboot2.2.2集成dubbo的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Spring开发中自定义注解的使用详解

    Spring开发中自定义注解的使用详解

    这篇文章主要介绍了Spring开发中自定义注解的使用详解,在Java项目中,可以自定义注解,方便进行某些处理操作,提供开发效率,需要的朋友可以参考下
    2024-01-01
  • 详解Spring 拦截器流程及多个拦截器的执行顺序

    详解Spring 拦截器流程及多个拦截器的执行顺序

    这篇文章主要介绍了Spring 拦截器流程及多个拦截器的执行顺序的相关资料,帮助大家更好的理解和学习使用Spring框架,感兴趣的朋友可以了解下
    2021-05-05
  • Java 3种方法实现进制转换

    Java 3种方法实现进制转换

    这篇文章主要介绍了Java 3种方法实现进制转换,帮助大家利用Java处理数据,感兴趣的朋友可以了解下
    2020-09-09
  • java与js代码互调示例代码

    java与js代码互调示例代码

    用到java和js方法互调,在用HTML5做跨平台应用开发时经常会用到,在这里分享一些自己在实际开发过程中的用法,希望对初学者有所帮助
    2013-07-07

最新评论