【Java】方法的定义和使用

本文详细介绍了Java中的方法定义与使用,包括如何定义一个方法、如何判断闰年和计算阶乘的示例。同时,讲解了方法中的实参与形参关系,并通过一个交换变量的示例说明了Java中方法调用的值传递特性。此外,还阐述了方法的重载概念,展示了三个不同参数列表的add方法。最后,通过一个递归求解阶乘的例子解释了递归的基本原理和必要条件。
摘要由CSDN通过智能技术生成

Java方法的定义和使用

一、方法的定义和使用:
1、什么是方法?
Java中的方法就相当于C语言中的函数。
2、方法的定义

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

示例1:检测一个年份是否为闰年

public class function {

    public static boolean isLeapYear(int year){
        if((0==year%4 && 0!=year%100) || 0==year%400){
            return true;
        }else{
            return false;
        }
    }
    public static void main(String[] args) {
        System.out.println(isLeapYear(2022))}
}

示例2:计算1!+2!+3!+4!+5!

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

3、方法中实参和形参的关系
Java中方法的形参就相当于数学中函数的自变量,用来接收函数调用时传递的值。
而形参只是方法定义时借助的一个变量,用来保存方法所传过来的值。
即:在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体

示例:

public class function {
    public static void swap(int x,int y){
        int tmp=x;
        x=y;
        y=tmp;
        System.out.println("swap:x="+x+"y="+y);
    }

    public static void main(String[] args) {
        int a=10;
        int b=20;
        swap(a,b);
        System.out.println("main:a="+a+"b="+b);
    }
}

不难发现,在swap函数交换之后,形参x和y的值发生了改变,但是main方法中的a和b还是交换之前的值,交换失败。
可以对比C语言中的传值调用。
二、方法重载:
1、方法重载的概念:
在Java中,如果多个方法名字相同,参数列表不同,则称该几种方法被重载了。

示例:

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

    public static void main(String[] args) {
        add(1, 2);
        add(1.2, 2.3);
        add(1.3, 2.6, 1.2);
    }
}

注意:

  • 方法名必须相同
  • 参数列表必须不同
  • 与返回值的类型是否相同无关

三、递归:
1、递归的概念
我们经常遇见一些相对复杂的问题,但是发现将原问题拆分成若干子问题后,子问题和原问题有相同的解法,当子问题解决后,原问题也就迎刃而解了。
2、递归的必要条件

  • 将原问题划分成其子问题
  • 递归出口

示例:递归求N的阶乘

public class n {
    public static void main(String[] args) {
        int n = 5;
        int ret = factor(n);
        System.out.println(ret);
    }

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

执行过程图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值