黑马程序员技术交流社区

标题: 定义方法参数时,可不可以用final关键字修饰传递进来的参数 [打印本页]

作者: 秦大忠    时间: 2013-8-19 09:35
标题: 定义方法参数时,可不可以用final关键字修饰传递进来的参数
就是在定义方法的参数时,加上final 关键字,是不是就可以阻止方法内部修改传递进来的参数呢?

public void demo(final 数据类型 形参)
{
}
如果不可以请给详细解释哈,为什么呢这是?
作者: 蚂蚁搬家    时间: 2013-8-19 11:16
当然可以用final修饰形参了,一个例子:匿名内部类;
匿名内部类可以访问外部类的所有成员,也可以访问包裹此匿名内部类的方法的局部变量,但是必须是final类型的局部变量,形参就是局部变量;
因为局部变量随着方法的调用而分配存储空间,方法调用完毕空间收回,而匿名内部类对象还存在,这样就会出现匿名内部类对象调用不存在的变量,所以必须用final修饰;
作者: ★栤膤嗹☆    时间: 2013-8-19 13:43
没什么不可以的。final关键字修饰的变量,如果为值型,则其值除了初始化之外,不可以被再次赋值;如果为引用型,则表示该引用不能指向其他的对象,但是该引用指向的对象本身是可以改变其值的。
作者: 暮雨默    时间: 2013-8-20 14:53
final:最终,final修饰的变量时一个不可改变的变量。
final可以修饰成员变量,方法,类,局部变量:方法内部定义的变量。
fianl型变量只能赋值一次,如果不使用可以不赋值,如果使用必须要求有值。
作者: 徐鹏跃    时间: 2013-11-21 11:32
完全可以的 很多框架再设计时,都是这样做,效率会更高些。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2