来QQ群 :257887726
讨论测试技术的真谛吧

变量作用域问题,我同时在mian方法中定义了两个名称为name的变量,为什么调换位置后就报重复的局部变量名?

attachments-2018-01-PvIUw73D5a6c88f75b2af.jpgattachments-2018-01-1cnk8DgF5a6c89008da55.jpg

请先 登录 后评论

2 个回答

Totti
擅长:java


上面这个叫做 局部代码块
作用是: 控制变量的生命周期

当我们已经使用完 name 后,并且在接下来的代码中,不会再用到name,那么就没必要让name 在内存中占用空间了。

错误的例子中,name 定义在 main 方法头部,其作用范围是 从定义处一直到方法结束
这种情况,再定义一个与其同名的变量就会出错。


正确的例子中,局部代码块中的name在跳出代码后已经被释放。在这之后再定义name是可以的。
这个name的作用范围也是 从定义处一直到方法结束


请先 登录 后评论
Kevin - Kevin老师
擅长:测试开发

还是作用域的问题,上面的 截图 最顶端的String name 在花括号内是可见的;而下面的图,最顶端的String name 离开花括号就没意义了,对底下的String name不可见

请先 登录 后评论
  • 2 关注
  • 0 收藏,118 浏览
  • 鲁德-陈丽媛 提出于 2018-01-27 22:15

如需发布职位,请登录

变量作用域问题,我同时在mian方法中定义了两个名称为name的变量,为什么调换位置后就报重复的局部变量名?

attachments-2018-01-PvIUw73D5a6c88f75b2af.jpgattachments-2018-01-1cnk8DgF5a6c89008da55.jpg

请先 登录 后评论

2 个回答

Totti
擅长:java


上面这个叫做 局部代码块
作用是: 控制变量的生命周期

当我们已经使用完 name 后,并且在接下来的代码中,不会再用到name,那么就没必要让name 在内存中占用空间了。

错误的例子中,name 定义在 main 方法头部,其作用范围是 从定义处一直到方法结束
这种情况,再定义一个与其同名的变量就会出错。


正确的例子中,局部代码块中的name在跳出代码后已经被释放。在这之后再定义name是可以的。
这个name的作用范围也是 从定义处一直到方法结束


请先 登录 后评论
Kevin - Kevin老师
擅长:测试开发

还是作用域的问题,上面的 截图 最顶端的String name 在花括号内是可见的;而下面的图,最顶端的String name 离开花括号就没意义了,对底下的String name不可见

请先 登录 后评论
  • 2 关注
  • 0 收藏,118 浏览
  • 鲁德-陈丽媛 提出于 2018-01-27 22:15
咨询电话:4008-779-565
CopyRights 上海鲁德企业咨询管理有限公司