一篇文章带你入门java方法

 更新时间:2021年08月06日 10:11:14   作者:rampant boy  
这篇文章主要介绍了java基础之方法详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下

方法的使用

什么是方法

初次看到方法两字,心里有些疑惑。方法不是指为获得某种东西或达到某种目的而采取的手段与行为方式吗?这是我们日常生活中所说的方法。而在Java中, 方法就是一个代码片段,类似于C语言中的函数。

方法的存在意义:

1.当代码规模比较复杂的时候,能够模块化地组织代码。

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

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

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

方法的语法

基本语法

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

代码示例

public static void main(String[] args) {
    int a = 20;
    int b = 30;
    int c = add(a,b);//方法的调用
    System.out.println(c);
}
//方法的定义
public static int add(int a,int b) {
    return a + b;
}

结果为:

image-20210805094220832

注意事项

  • 方法定义时,参数可以没有,每个参数要指定类型。
  • 方法定义时,返回值也可以没有,如果没有返回值,则返回值类型应写成 void。
  • 方法定义时的参数称为"形参",方法调用时的参数称为 “实参”。
  • 方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可。
  • Java 中没有 “函数声明” 这样的概念。

方法的调用

调用规则

  • 定义方法的时候,不会执行方法的代码。只有调用的时候才会执行。
  • 当方法被调用的时候,会将实参赋值给形参。
  • 参数传递完毕后,就会执行到方法体代码。
  • 当方法执行完毕之后(遇到 return 语句),就执行完毕,回到方法调用位置继续往下执行。
  • 一个方法可以被多次调用。

代码示例

public static void main(String[] args) {
    int a = 20;
    int b = 30;
    int c = add(a,b);
    System.out.println("c = " + c);
    int d = add(a,c);
    System.out.println("d = "+ d);
    int e = add(c,d);
    System.out.println("e = "+ e);
}
public static int add(int a,int b) {
    return a + b;
}

结果为:

image-20210805100025612

方法的重载

引例

如果我们需要一个计算两个整型之和的方法,那么我们可以这样定义:

public static int addInt(int a,int b) {
        return a + b;
}

如果我们需要一个计算两个double型之和的方法,那么我们可以这样定义:

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

我们可以发现,这两个方法的作用基本相同,都是计算两数之和,只是参数和返回类型不同而已。那么我们是否可以将其简化呢?

使用重载

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

同一个方法名字,供不同版本的实现,称为方法重载。

我们可以通过下面这段代码进行验证:

public static void main(String[] args) {
    int a = 20;
    int b = 30;
    double c = 5.4;
    double d = 7.8;
    System.out.println(add(a,b));
    System.out.println(add(c,d));
}
public static int add(int a,int b) {
    return a + b;
}
public static double add(double a, double b) {
    return a + b;
}

结果为:

image-20210805110158073

重载规则

  • 方法名相同
  • 参数列表不同(参数个数和参数类型不同)
  • 返回值不作要求
  • 重载不是必须要在一个类当中(继承)

当两个方法的名字相同,参数也相同,但是返回值不同的时候,不构成重载。 例如:

image-20210805111007916

此时编辑器便报错。

方法递归

递归定义

一个方法在执行过程中调用自身,同时有一个趋近于终止的条件,就称为方法递归。

代码示例

public static void main(String[] args) {
    int n = 5;
    int ret = fac(n);
    System.out.println("ret = " + ret);
}
//求n的阶乘
public static int fac(int n) {
    if(n == 1) {
        return 1;
    } else {
        return n * fac(n - 1);
    }
}

执行结果为:

image-20210805113629063

递归执行过程分析

例如上面这段代码,它的执行过程如下:

image-20210805154125359

更简洁的解释如下:

image-20210805155020536

所有的递归都可以这样分析。

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容在!

相关文章

  • Gradle:修改默认的Build配置文件名方式

    Gradle:修改默认的Build配置文件名方式

    这篇文章主要介绍了Gradle:修改默认的Build配置文件名方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 关于java中@Async异步调用详细解析附代码

    关于java中@Async异步调用详细解析附代码

    本文主要介绍了java关于@Async异步调用详细解析附代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 关于java.util.Random的实现原理详解

    关于java.util.Random的实现原理详解

    Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法,下面这篇文章主要给大家介绍了关于java.util.Random实现原理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-08-08
  • Mybatis中 mapper-locations和@MapperScan的作用

    Mybatis中 mapper-locations和@MapperScan的作用

    这篇文章主要介绍了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件,需要的朋友可以参考下
    2023-05-05
  • 关于Java实体类Serializable序列化接口的作用和必要性解析

    关于Java实体类Serializable序列化接口的作用和必要性解析

    序列化是将对象状态转化为可保持或者传输的格式过程,与序列化相反的是反序列化,完成序列化和反序列化,可以存储或传输数据,一般情况下,在定义实体类时会使用Serializable,需要的朋友可以参考下
    2023-05-05
  • Java Web学习之MySQL在项目中的使用方法

    Java Web学习之MySQL在项目中的使用方法

    mysql数据库是我们在日常开发中经常会用到的,下面这篇文章主要给大家介绍了关于Java Web学习之MySQL在项目中的使用方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-04-04
  • 解决无法解析javax.servlet的方法

    解决无法解析javax.servlet的方法

    最近在创建一个servlet时,自动生成的代码中出现servlet无法解析的提示,令我无法正常使用servlet里的方法,在对各个步骤进行查看后,发现了问题所在,需要的朋友可以参考下
    2021-05-05
  • springboot项目如何使用切面记录用户操作日志

    springboot项目如何使用切面记录用户操作日志

    这篇文章主要介绍了springboot项目如何使用切面记录用户操作日志,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • SpringBoot接收参数所有方式总结

    SpringBoot接收参数所有方式总结

    这篇文章主要介绍了SpringBoot接收参数所有方式总结,文中通过代码示例和图文结合的方式给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-07-07
  • 关于Java中修饰符的总结(fina除外)

    关于Java中修饰符的总结(fina除外)

    下面小编就为大家带来一篇关于Java中修饰符的总结(fina除外)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09

最新评论