方法的使用

(相当于C语言的函数)

一.方法概念及使用

1.方法定义

方法语法格式

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

比如判断是不是闰年

public class Method{
    public static boolean isleapyear(int year){  //这里的year就是形参
        if((0 == year % 4 && 0 != year % 100) || 0 == year %400){
            System.out.println(year+"年是闰年");
            return true;
        }
        return false;
    }

    public static void main(String[] args){
        int year = 1900;
        //方法的调用
        isleapyear(2023); //这里的2023就是实参
    }
}

注意:

1.修饰符:现阶段直接使用public static固定搭配\

2.返回值类型:如果有返回值,返回值类型必须要与返回值的实体类型一致,如果没有返回值,必须写成void

3.方法命名:使用小驼峰命名

4.参数列表:如果方法没有参数,()内什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

5.方法体:方法内部要执行的语句

6.在Java中,方法必须写在类中,方法不能嵌套定义,没有方法声明一说

2.方法调用的执行过程

调用方法-传递参数-找到方法地址-执行被调用方法的方法体-被调方法结束返回-回到主调方法继续往下执行 

3.实参和形参的关系

在Java中,实参的值永远都是赋值到形参中,形参和实参本质是两个实体

4.没用返回值的方法

方法的返回值是可选的,有些时候是可以没用的,没有返回值类型必须写成void

二.方法重载

有时我们需要写很多相似的方法,比如两个int相加,两个double相加,int和double相加等,如果每个方法都记一个方法名将会很麻烦,所以需要方法重载

1.方法重载的概念

在自然语言中,经常出现一词多义,比如好人

如果一个词有多重含义,就说该词语被重新了

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

注意:

1.方法名必须相同

2.参数列表必须不同(参数个数,参数类型,类型的次序)

3.与返回值类型是否相同无关

4.编译器在编译代码时,会对实参进行推演,根据推演的结果来确定调用哪个方法

2.方法签名

在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中可以定义方法名相同的方法呢?

方法签名即:经过编译器修改过之后方法最终的名字。具体方法:方法名全路径名+参数列表+返回值类型,构成方法完整的名字
 

三.递归

1.递归的概念

一个方法在执行过程中调用自身,就称为递归(递过去,归回来)

必要条件:

1.将原问题划分成其子问题,注意:子问题必须要与原问题解法相同

2.递归出口(起始条件)

2.递归练习

1.按顺序打印一个数字的每一位(例如1234,打印出1 2 3 4)

public class Main {
    public static void prin(int n){
        if(n/10 == 0){
            System.out.print(n+" ");
        }else {
            prin(n/10);
            System.out.print(n%10+" ");
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        prin(n);
    }
}

2.写一个递归方法,输入一个非负整数,返回组成他们的数字之和,例如,输入1729,返回1+7+2+9,得19;

3.求斐波那契数列得第n项

平时斐波那契数列不要用递归去写,空间太大,用循环

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值