我的理解:这个方法的作用就是让两个变量的值交换
定义完两个变量 然后调用方法,把变量传入方法,那么目的就是让两个变量的值交换
但是调用完之后输出的两个变量没有交换 是为什么 有点没理解
登陆购买课程后可参与讨论,去登陆吧
同学你好,这是因为main方法和swap方法中的变量都是局部变量,而局部变量的有效范围是从其声明的位置开始,到期所在的代码块结束。也就是说,swap方法中的变量a和b有效范围是在第5行到第10行之间,而main方法是不在这个范围的。
所以就会出现,在swap方法中确实将a和b的值进行了互换,但是这个互换的效果没有传达给main方法,所以在main方法中是看不到互换的。
祝学习愉快~
那如果 我设置了返回值 那么main方法中的变量调用方法后输出 是不是就会改变了 还是也不变
同学你好,正常情况下,需要同时满足:
1.设置返回值
2.在main方法中接收返回值
3.用返回值覆盖原有变量
同时满足上述三点的时候,确实可以看到变化。但是返回值只能返回一个数值,而例题中是两个变量,以现在的知识是无法同时返回两个变量的值的。
如下代码同学可以自行测试一下:
package
com.imooc.test;
public
class
Test {
static
void
main(String[] args) {
Test test =
new
Test();
int
a =
2
;
//调用没有返回值的方法时,a的值没有改变
test.change1(a);
//调用有返回值的方法,并且覆盖原变量,a的值发生改变
a = test.change2(a);
}
change1(
a) {
a = a +
1
change2(
return
a;
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
79 1
56 1
10 1
14 1
56 9
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧