浅析final关键字
2018-06-27 09:55:35来源:未知 阅读 ()
浅析final关键字
final单词字面意思是“最终的,不可更改的”。所以在java中final关键字表示终态,即最终的状态,“这个东西不能被改变”。
final关键字可以用来修饰类、方法、数据(包括成员变量、局部变量与方法参数)。
(1)final类
final关键字修饰的类是不能被继承的。在这里插入一些个人想法,当一个类被修饰为final时,代表它无法被继承,即不能被扩展,所以从设计的角度来考虑,自己写的类一般不要修饰为final;而对于辅助性的类为了不让外部破坏内部数据,可以修饰为final,这些只是个人想法,如果有错,望指正!
(2)final方法
final关键字修饰的方法不能被重写。可能会使用final方法的两个原因:一是给方法”上锁”,防止继承类修改它;二是程序执行效率考虑,编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
(3)final成员变量
当final关键字修饰成员变量时,表示该成员变量只能进行一次赋值操作,并且在生存期内不可以改变它的值。final成员变量必须在声明时进行初始化或者在构造器中进行初始化,否则编译器会报错。
(4)final局部变量
final修饰局部变量时只能初始化(赋值)一次,并且在生存期内不可以改变它的值。与成员变量不同,final局部变量在声明时可以不初始化,只需要保证在使用之前初始化赋值即可。
(5)final参数
当final关键字修饰参数时比较复杂,final修饰方法参数时,是在调用方法传递参数时候初始化的。参数被声明为final,若是基本参数,那它就是一个常量,在调用方法传递参数后不能被修改;若是一个引用变量,那么它在调用方法传递参数后就不能被修改指向另一个对象,但可以修改该引用所指对象的内容。
注意:
(1)如果一个类被修饰为final,结果只是禁止继承,没有更多的限制。所以其数据成员可以是final的,也可以不是,取决于我们的具体选择。
(2)final类中的所有方法被默认为final方法,如果一个类不能被继承,则其内部的方法不会被重写,所以编译器默认final类中的方法是final方法(final类中的方法你添加final修饰符不会增加任何效果。
想一想:
在创建一个类时,可以同时用final关键字与abstract关键字修饰吗?
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 数据的存储结构浅析LSM-Tree和B-tree 2020-06-04
- 面试官:兄弟,说说Java的static关键字吧 2020-06-04
- Java并发编程volatile关键字 2020-05-24
- 技术大佬:我去,你竟然还不会用 this 关键字 2020-05-24
- Mockito不能mock final类的解决办法 2020-05-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash