传参机制与递归调用

101 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

成员方法传参机制:

基本数据类型的传参机制:

基本数据类型传递是值(值拷贝),形参的任何变化不能影响到实参**!**

代码演示:

image.png

引用类型的传参机制:

引用类型传递是地址(地址拷贝),形参的任何变化影响到实参!

代码演示:

image.png 这里再抛出一个小问题,大家可以先去敲代码试试,就是在上面那个代码里面的class DD类里,这里我们试着去new一个对象,在这个对象里去尝试改变数组的某些成员,然后再回到main方法里面去遍历输出这个数组,观察它是否同上述示例一样是地址拷贝。(这里我就不再代码演示了,相信小伙伴们可以轻易上手验证。)

方法递归调用:(划重点了,小伙伴们!!!)

概念:

递归就是方法自己调用自己,每次调用时传入不同的变量。

代码演示:

image.png 结果展示:大家需要注意的是:

独立出来的每一个栈都会将test的方法体里的代码给执行一遍,还有递归就是从顶部的栈开始一个一个地回到最低部的main栈!!

image.png 这里在介绍一个递归求阶乘的方法:

需要注意的是return返回给谁?-->谁调用的就返回给谁!!!

image.png 以上大家若还是有不懂的,可以去画画其调用时的内存图,观察栈空间里面的对于每一个方法被调用的时候独立栈的建立,我在这里将画面呈现出来也是一个静态的效果,小伙伴们自己尝试画的话理解会更加深入、通透,当然若其间存在一点小问题,欢迎一起探讨。

image.png 一起加油!fighting!! image.png