JAVA基础语法:方法的定义与使用

一.方法的基本用法

1.什么是方法(函数)

方法就是一个代码片段,类似于C语言中的“函数”。
方法存在的意义
a.是能够模块化的组织代码(当代码比较复杂的时候)
b.做到代码被重复使用,一份代码可以在多个位置使用
c.让代码更好理解更简单
d.直接调用现有方法开发,不必重复造轮子

2.方法的定义语法

public static 方法返回值 方法名称(方法的参数。。[0…N]){
//方法体的代码
[return语句];
}

该方法是否有返回值要看这个方法的作用或者功能是啥

比如:求某几个数(int)的和=>调用这个方法就是想知道和是多少,当然要有返回值,告诉调用者返回值是多少=>int
在这里插入图片描述

实现一个方法,接收任意一个正整数,输出每一位的数字是几=>你给我传入任意一个整数,我就能输出每一位数字,不需要返回值

3.方法的调用

返回值变量=方法名称(参数);
基本规则:
1.定义方法的时候,不会执行方法的代码,只有调用的时候才会执行
2.当方法被调用时,会将实参赋值给形参
3.参数传递完毕后, 就会执行到方法体代码
4.当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行
5.一个方法可以被多次调用
计算1!+…+5!
在这里插入图片描述

4.实参与形参的关系

在java中,方法的参数传递只有值传递,所谓的值传递就是把实参的值拷贝一份给形参,对实参没有任何影响
在这里插入图片描述
解决方法:在方法外部交换两个局部变量的场景在java中压根就不存在,这个问题的解决需要引入引用数据类型(数组或对象)
在这里插入图片描述

5.没有返回值的方法

没有返回值的方法使用void声明,在没有返回值的方法中,仍然可以使用return;表示提前结束方法的调用。
在这里插入图片描述

二.方法的重载

请解释方法重载(overload)和方法重写(override)的区别:
方法重载发生在同一个类中,定义了若干个方法名称相同,参数列表不同(参数的类型或者个数不同)的一组方法,与返回值无关,这样的一组方法称为重载方法
在这里插入图片描述
java中System.out.println(任意参数类型都可以):实际上就是因为System这个类中定义了N个重载方法

三.方法递归

1.什么是方法递归

所谓方法递归就是在一个方法执行的内部,自己调用自己的过程,称之为递归。
递归分为两个子过程:
a.递过程:函数不断调用自身,直到走到函数的终止条件,第一阶段结束
b.归过程:函数不断返回的过程称为归过程

2.什么场景下能调用方法递归

a.一个大问题可以拆分成若干个子问题的解
b.拆分后的子问题和原问题除了数据规模不同,解决思路完全相同
c.必须存在递归的终止条件(不会无限拆分下去,一定能走到根)

3.如何写出递归代码

在写递归函数时,千万不要纠结这个函数内部到底咋实现,而是注意这个方法的语义(这个函数到底有什么功能),就假设,这个方法别人已经写好了,你只是调用这个方法而已

递归函数的关键:
方法调用时,程序会卡在调用处,直到方法返回继续运行

写出递归代码其实=终止条件+不借助任何方法就能实现的步骤+剩下的问题利用这个方法去解决
a.求阶乘值的递归方法:
在这里插入图片描述
b.传入任意一个非负整数num,求出组成num的各个位数之和:
在这里插入图片描述
c.求菲波那切数列:
在这里插入图片描述
d.按顺序输出一个正整数的每一位:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值