【如何调用或者修改方法内的局部变量】

握草 2017-10-25 10:05:18
如题
文明上网,谢绝水贴
...全文
952 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
帮主的斗鸡眼 2017-10-28
  • 打赏
  • 举报
回复 1
一个方法结束,局部变量就从内存消失了
握草 2017-10-28
  • 打赏
  • 举报
回复
局部变量的作用域太窄:只在方法内起作用,如果想要在方法外界起作用只能通过形参传值,实现方法——间接的体现方法内的局部变量的作用!!
握草 2017-10-27
  • 打赏
  • 举报
回复
@夫为欲往_皆如是也 当你把arr[i]用return传出方法(是这个意思吧),并保存在成员变量a中: int a=myMethod(..return数组.); 这样只是复制了该数组元素所指向的对象的地址,当我们改变a的值时,相当于改变了原本arr[i]指向的对象另一个引用a,而对象本身和arr[i]对应的引用都没有改变!
java小白脸 2017-10-27
  • 打赏
  • 举报
回复
没事别修改局部变量,如果需要,就利用形参传值
  • 打赏
  • 举报
回复
如果你是准备更改方法内定义的变量那你只能在方法内进行更改,在方法外根本就没法去获得那个变量的引用,所以就谈不上更改了。 不过有种情况会给人造成更改方法内变量的错觉,但其实不是方法内的那个变量(改变变量指的是改变变量名这个引用所指向的值,对于引用类型指的是这个引用所指向的对象的地址,也就是改变这个引用所指向的对象)而是改变那个对象的属性,例如:你在方法内定义的变量是一个int[] arr,然后你把这个数组传出这个方法(比如:把这个数组的值付给一个成员变量),然后你通过这个成员变量改变数组里的值,这就给了你一种你改变了方法里变量的错觉,但你不进行这样的操作-->arr = new int[5] 就不叫改变arr这个变量。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧