八、方法、方法重载

一、方法

1.什么是方法,有什么用

方法是可以完成某个特定功能并且可以被重复利用的代码片段,并且一定是自上而下依次执行

2.为什么方法中的变量在运行后一定要释放

因为在一个程序中,方法的调用可能不止一次,并且因为在同一个内存空间当中,变量名不能重名,如果不释放会出现变量名冲突
在方法中的变量是局部变量,局部变量有个特点:在方法结束后,局部变量占用的内存会自动释放

3.方法怎么定义以及语法

定义方式:修饰符列表 返回值类型 方法名(形式参数列表){
        方法体;(方法体由java语句构成)
}

3.1.修饰符列表

修饰符列表不是必须的

3.2.返回值类型

(1)返回值类型可以是任何类型,只要是java中的合法的数据类型
(2)返回值就是方法执行结束的执行结果,通常是一个数据,只要是数据就要有类型
(3)当一个方法执行结束,不返回任何值的时候,返回值类型也只能写void,不能不写
(4)如果返回值类型不是void,那么在方法体执行结束后必须使用“return 值;” 如果不用编译器会报错
(5)只要一个方法出现return,return执行完当前方法必定结束,并且return下面不能编写代码
(6)如果返回值类型是void,那么方法体执行结束之后不能有“return 值;”但是可以有return

3.3.方法名

方法名要见名知意
方法名要求首字母小写,后面每个单词首字母大写

3.4.形式参数列表

形式参数列表中的每个参数都是局部变量,方法结束之后内存释放

3.5.方法体

由Java语句构成,方法体中编写的是业务逻辑代码,完成某个特定功能

4.方法定义之后的调用

4.1 语法:类名.方法名(实际参数列表)

4.2 方法必须先调用才能执行

4.3 实参和形参的类型,个数都要必须一一对应

4.4.1 当一个方法没有返回值的时候,不能接收
4.4.2 当一个方法有返回值的时候,可以不接收

4.5调用程序不一定要写在main方法中,main也是一个普通方法;main方法最先执行,最后结束

二、方法重载(overload)

1.优点:

(1)能使代码整齐美观
(2)功能相似的,可以让方法名相同,更易于以后的代码编写

2.什么时候需要考虑方法重载

在同一个类中,如果两个或者多个它们的功能是相似的,那么就可以考虑把它们方法名定义相同,这样代码美观而且便于后期的代码编写

注意:方法重载不能随便使用

3.什么时候代码会发生方法重载

(1)在同一个类中
(2)方法名相同
(3)参数列表不同

注意:方法重载与方法的返回值类型无关
方法重载与方法的修饰符列表无关
println也是一个方法名,并且也重载了

三、方法递归

1.什么是方法递归

(1)方法自己调用自己就是递归
(2)当递归时,程序没有结束条件,一定会发生:栈内存溢出错误:StackOverflowError
所以递归必须要有结束条件
(3)就算递归有结束条件,但是也有可能因为递归的太深了导致栈内存溢出
(4)所以在实际开发中,不建议轻易选择递归,如果能用循环的话用尽量循环(但是在极少数情况下,不用递归无法实现)

假设如果有一天真碰到了StackOverflowError
第一步:检查递归的结束条件,如果不对,要修改到正确为止
第二步:如果递归的结束条件没问题,手动调整JVM的栈内存初始化大小,调大
第三步:调整了大小还是出现错误,那就继续扩大栈的内存大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值