4-11的return执行流程
老师,1、我梳理一下return在try---catch---finally中的执行流程:
try中的b+=10,得到的值是20,下一行代码return b,这里不会直接返回,因为finally块的语句必须得被执行,return b=20先存起来,等执行完finally的代码再返回。
可是finally也有return,此时替换原先try的,返回finally自己的return.
老师上述理解的对吗?
2、当我把finally语句块里的return删除,try语句块的return b=20正常执行,因为finally必须被执行,跳转过去,finally语句块里写有b+=10,这里b=30,但是try返回的是20,并没有被finally语句块改变数值,最后返回的还是20.
3、老师,为什么要将test方法设置为静态的:public static int test(int b){}
正在回答
同学你好,1、关于return在try-catch-finally中的执行流程,同学的理解是对的哦!
2、当把finally语句块里的return删除,try语句块的return b=20正常执行,执行到finally语句后,并没有return 语句来改变返回值,所以执行的还是try块中的返回值是20!
3、test方法设置为静态,是因为在主方法中是直接调用的test方法,而并没有创建对象,通过实例对象来调用test方法,所以test需要static修饰的静态方法,才能直接调用哦!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星