当前位置: 首页 > article >正文

【Java】——方法的使用(从入门到进阶)

在这里插入图片描述
🎁个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章
🔍系列专栏:【Java】内容概括
在这里插入图片描述

在这里插入图片描述

文章目录:

  • 1.方法的概念及使用
    • 1.1 什么是方法?
    • 1.2 方法的意义
    • 1.3 方法的定义
    • 1.4 示例
    • 1.5 方法的调用
    • 1.6 实参和形参的关系
    • 1.7 返回值
  • 2.方法重载
    • 2.1 为什么需要⽅法重载
    • 2.2 方法重载的概念
    • 2.3 方法签名

【前言】

在Java编程的世界里,方法(Method)就像是一个个精巧的工具,帮助我们把复杂的任务分解成一个个可管理的小模块。对于刚接触Java的小白来说,掌握方法的使用是迈向编程高手之路的重要一步。本文将全面且深入地探讨Java方法的使用,带你从基础入门,逐步深入理解其精髓。

1.方法的概念及使用

1.1 什么是方法?

Java中的方法类似于C语言中的函数,方法是一组为了完成特定功能的代码块,它将一段逻辑封装起来,使其可以被重复调用。通过使用方法,我们可以提高代码的可维护性、可复用性和可读性。例如,计算两个整数之和这样一个简单的功能,如果没有方法,每次需要计算时都要重复编写加法的代码;而有了方法,我们只需编写一次加法逻辑,在需要的时候调用这个方法即可。

通俗易懂的理解方法:
比如说,我买了一个小米榨汁机(这里不是打广告哈),我想喝一杯鲜榨橙汁,那么我需要准备橙子(食材),然后就开始放入榨汁机中,开始一系列操作,最后得到一杯鲜榨橙汁.
这一整个过程就相当于Java中的方法,食材就是参数,一系列步骤就是代码,最后得到的橙汁就是返回值

1.2 方法的意义

  • 是能够模块化的组织代码(当代码规模⽐较复杂的时候).
  • 做到代码被重复使⽤, ⼀份代码可以在多个位置使⽤.
  • 让代码更好理解更简单.
  • 直接调⽤现有⽅法开发, 不必重复造轮⼦.

1.3 方法的定义

语法格式:

修饰符 返回值类型 ⽅法名称([参数类型 形参 ...]){
          ⽅法体代码;
          [return 返回值];
}

so:

当我们每次想喝橙汁时,只需要调⽤这个“函数”,⽽不需要每次都重复所有步骤。这样不仅提⾼了效率,也让整个过程变得更加简单和有条理。

1.4 示例

1.实现一个函数,判断闰年

public class Method{
// ⽅法定义
     public static boolean isLeapYear(int year){
       if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){
         return true;
       }else{
         return false;
       }
   }
}

2.实现⼀个两个整数相加的⽅法

public class Method{
// ⽅法的定义
   public static int add(int x, int y) {
        return x + y;
    }
}

【注意事项】:

  • 修饰符:现阶段直接使⽤public static 固定搭配
  • 返回值类型:如果⽅法有返回值,返回值类型必须要与返回的实体类型⼀致,如果没有返回值,必 须写成void
  • ⽅法名字:采⽤⼩驼峰第一个单词首字母小写,后面的首字母大写命名
  • 参数列表:如果⽅法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使 ⽤逗号隔开
  • ⽅法体:⽅法内部要执⾏的语句
  • 在Java当中,⽅法必须写在类当中
  • 在Java当中,⽅法不能嵌套定义
  • 在Java当中,没有⽅法声明⼀说
    在这里插入图片描述

1.5 方法的调用

方法需要被调用之后才能运行那怎么调用呢,接着往下看吧

用两个数相加来举例:

public class Test {
    public static void main(String[] args){
        //调用方法
        int x = 1;
        int y = 2;
        int ret = add(1,2);
        System.out.println(ret);
    }
    public static int add(int x,int y){
        //方法的定义
        return x + y;
    }
}

【注意】

  • 定义⽅法的时候, 不会执⾏⽅法的代码. 只有调⽤的时候才会执⾏.
  • 调⽤⽅法的时候,需要使⽤⽅法名+参数列表的形式进⾏调⽤
  • 如果⽅法有返回值,需要接收返回值结果

【练习】:计算 1! + 2! + 3! + 4! + 5!

博主在【Java】——程序逻辑控制(构建稳健代码的基石)中写过这个题,但使用函数调用之后就不用在套用,会变得更有条理,更容易让人看懂,下面是三种方法,大家可以体会体会

第一种:

public class Test {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <=5; i++) {
            int ret = 1;
            for(int j = 1;j <= i;j++){
                ret *= j;
            }
            sum += ret;
        }
        System.out.println(sum);
    }
}

第二种:

public class Test {
    public static void main(String[] args){
        int facSum = facSum(5);
        System.out.println(facSum);
    }
    public static int facSum(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            int ret = 1;
            for (int j = 1; j <= i; j++) {
                ret *= j;
            }
            sum += ret;
        }
        return sum;
    }
}

第三种

public class Test {
    public static int facSum(int n){
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += fac(i);
        }
        return sum;
    }
    public static int fac(int n){
        int ret = 1;
        for (int j = 1;j <= n;j++){
            ret *= j;
        }
        return ret;
    }
    public static void main(String[] args) {
        int facSum = facSum(5);
        System.out.println(facSum);
    }
}

执行结果:
在这里插入图片描述
【总结】

  • ⼀个⽅法可以被多次调⽤
  • 使⽤⽅法, 避免使⽤⼆重循环, 让代码更简单清晰.

1.6 实参和形参的关系

⽅法的形参相当于数学函数中的⾃变量,⽐如:1 + 2 + 3 + … + n的公式为sum(n) = ((1+n)*n) / 2
Java中⽅法的形参就相当于sum函数中的⾃变量n,⽤来接收sum函数在调⽤时传递的值的形参的
名字可以随意取,对⽅法都没有任何影响,形参只是⽅法在定义时需要借助的⼀个变量,⽤来保存⽅ 法在调⽤时传递过来的值。

public class TestMethod {
    public static void main(String[] args) {
      //调⽤⽅法
       int ret = getSum(10); // 10是实参,在⽅法调⽤时,形参N⽤来保存10
       System.out.println("ret = " + ret);
    }
    public static int getSum(int N) {
      // N是形参
       return (1+N)*N / 2;
   }
}

注意:

  • 在Java中,实参的值永远都是拷⻉到形参中,形参和实参本质是两个实体
  • 实参传值给形参,必须做到类型匹配,顺序匹配,个数匹配

【示例】:交换实参的值

public class Test {
    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;
    }
}

运行结果:
在这里插入图片描述
【解释】

实参a和b是main⽅法中的两个变量,其空间在main⽅法的栈(⼀块特殊的内存空间)中,⽽形参x和y
是swap⽅法中的两个变量,x和y的空间在swap⽅法运⾏时的栈中,因此实参a和b与形参x和y是两个没有任何关联性的变量,在swap⽅法调⽤时,只是将实参a和b中的值拷⻉了⼀份传递给了形参x和y,因此对形参x和y操作不会对实参a和b产⽣任何影响。

在Java当中是⽆法获取栈上的局部变量的地址的,如果要发⽣实参的交换,我们需要具备类和对象的知识

1.7 返回值

⽅法的返回值是⽤来接收⽅法运⾏之后,需要传递出去的值的。但是有的⽅法没有返回值,如果有返回值的情况下,我们需要注意返回值的数据类型需要匹配
在这里插入图片描述

返回值可以⽀持链式表达式:

public class Test {
    public static void main(String[] args){
        //调用方法
        int x = 1;
        int y = 2;
        int ret = add(1,2)+100;//链式表达式
        System.out.println(ret);
    }
    public static int add(int x,int y){
        //方法的定义
        return x + y;
    }
}

在这里插入图片描述

so:

  • 返回值在接收过程当中需要匹配
  • 没有返回值的情况下,⽅法的返回值类型为void
  • ⼀个⽅法是否有返回值需要视情况⽽定

2.方法重载

2.1 为什么需要⽅法重载

当既想计算两个整数相加,也想计算两个⼩数相加的时候,此时会出现参数类型不匹配的情况,如下:

public class Test {
    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);
    }
    public static int add(int x,int y){
        return x + y;
    }
}

在这里插入图片描述

下面是一个比较愚蠢的方法:
提供两个方法,分开计算虽然不会报错,但需要提供许多不同的方法名,就比较麻烦.不过重载就可以解决这个问题

public class Test {
    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 = addDouble(a2,b2);
        System.out.println("ret2 = " + ret2);
    }
    public static int add(int x,int y){
        return x + y;
    }
    public static double addDouble(double x,double y){
        return x + y;
    }
}

2.2 方法重载的概念

中华文化博大精深,很多词语都有不一样的含义,那这就说明该词语被重载了,在Java中,如果多个⽅法的名字相同,参数列表不同,则称该⼏种⽅法被重载了。

public class Test {
    public static void main(String[] args) {
        add(1,2);    //调⽤add(int, int)
        add(1.1,2.2);//调⽤add(double, double)
        add(1.5, 2.5, 3.5);// 调⽤add(double, double, double)
    }
    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;
    }
}

注意:

  • ⽅法名必须相同
  • 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  • 与返回值类型是否相同⽆关
  • 编译器在编译代码时,会对实参类型进⾏推演,根据推演的结果来确定调⽤哪个⽅法
  • 两个⽅法如果仅仅只是因为返回值类型不同,是不能构成重载的

2.3 方法签名

⽅法签名:经过编译器编译修改过之后⽅法最终的名字。
具体⽅式:⽅法全路径名+参数列表,构成⽅法完整的名字
方法签名手册
【总结】

Java方法是Java编程中非常重要的概念,通过合理地定义和使用方法,可以使代码更加模块化、易于维护和复用。本文介绍了Java方法的定义、调用、参数、返回值、重载、等方面的知识。希望通过这些内容,能帮助Java小白们深入理解和掌握Java方法的使用,为后续的Java学习和编程实践打下坚实的基础。在实际编程中,多练习、多思考,不断积累经验,才能更加熟练地运用方法来解决各种复杂的问题。

在这里插入图片描述


http://www.kler.cn/a/592326.html

相关文章:

  • 人工智能助力家庭机器人:从清洁到陪伴的智能转型
  • 计算机网络基础:展望未来网络发展趋势
  • 自然语言处理入门4——RNN
  • Java 的 正则表达式
  • 【海螺AI视频】蓝耘智算 | AI视频新浪潮:蓝耘MaaS与海螺AI视频创作体验
  • 基于Spring Boot的项目申报系统的设计与实现(LW+源码+讲解)
  • JVM的一些知识
  • 浏览器工作原理深度解析(阶段四):排版系统与布局计算一、引言
  • 基于百度翻译的python爬虫示例
  • C++高频(五)之虚函数
  • pipost 如何提升团队协作效率 [特殊字符]
  • 【SoC基础】单片机常用总线
  • spring 配置websocket
  • 好数 第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • 5.2 Alpha to coverage in Depth
  • MySQL 调优
  • Vue的watchEffect的追踪逻辑
  • Docker 内部通信(网络)
  • BGP 路由选路、负载分担与发布策略
  • Android7 Input(一)Android Input服务初始化