码迷,mamicode.com
首页 > 其他好文 > 详细

final关键字

时间:2018-10-12 18:27:28      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:情况   类型   bsp   lis   变量   list   说明   初始化   bubuko   

  • 类声明为final 类不可被继承,同时隐含所有的方法是final的
  • 方法声明为final 方法不可被重写
  • final修饰变量 某种程度上变量不可修改(不可变)

final不可变的理解  final只能约束一个变量的引用一旦被赋值后,不能重新赋值

技术分享图片

变量 a 使用fnal声明,a可以理解为一个变量的引用,所以a 不能再被赋值,那岂不是说明使用final声明的变量就是不可变的吗?

技术分享图片

第一个list.add("hello"),执行正常 list中成功加入了一个值,第二个unmodifiableList.add("hello") 执行报错

总结:final声明一个变量,如果这个变量一旦被初始化,这个变量不能再指向其它的对象,在上面的例子上list指向了一个ArrayList对象后,list不能再指向其它的对象,但是它指向的这个对象是可以变的,final只能约束list这个引用不可以被再次赋值。如果需要对象本身不可变则需要相应的类支持不可变的行为。对于基本类型使用final关键字声明,一旦被赋值,引用不可以再次赋值,引用指向的值本身也不支持修改,在这种情况下可以理解使用final声明的变量是不可变的。

 

final关键字

标签:情况   类型   bsp   lis   变量   list   说明   初始化   bubuko   

原文地址:https://www.cnblogs.com/wangliv/p/9779930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!