A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余明辉 中级黑马   /  2012-8-1 22:44  /  1936 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么局部变量不能定义为static?
final 关键字为什么要修饰形参?
很不理解为什么,形参一般都是方法结束以后就没有了,定义成final有意义吗

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1 加油

查看全部评分

4 个回复

倒序浏览
局部变量的作用域就是它所在的方法或代码块中,而static的变量是定义在类中方法体外,是作为整个类共同使用的,它从类加载开始就存在,而局部变量在它所在的方法或代码块结束后就要被回收,final关键字不是要修饰形参,是可以修饰形参,final修饰的变量时最终变量,只能赋值一次。根据程序需求的不同决定是否定义成final

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 佟都 于 2012-8-4 18:13 编辑

1、为什么局部变量不能定义为static?
局部变量是在方法中才有效的;而static是用来修饰类成员(成员变量、成员方法)的,类成员在类中有效。
无论怎么声明局部变量,也不可能让它的作用域为整个类,所以用static修饰没意义。

2、final 关键字为什么能修饰形参?
通常开发的时候,我们都不会去改变形参的值。因为一旦改变形参的值,下次如果要再使用形参
怎么办?更糟糕地是,如果忘记方法内修改过形参的值而直接使用可能导致错误。用final修饰形参
可以避免这些潜在的问题。
回复 使用道具 举报
顶楼上,学习了
回复 使用道具 举报
谢谢,这些小细节,以前还真的没有注意过
问题已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马