根据海子blog经过手动验证思考的 final关键字总结
2015-08-06 13:54
239 查看
final关键字 (修饰常量、变量、方法、类)
通过以上可以得知,final修饰的类不可以被继承,既然类都不能被继承方法肯定也不能被重写(所以:其实final类中的方法被隐式的转换为final的方法)。
前提:final类的使用前提是这个类绝不可能被继承。
意义:final类的好处是这个类中的方法不会被重写,十分的安全。
以上证明final修饰的方法不能被重写。
前提:明确禁止方法被子类覆盖的情况下。
意义:安全。
注意:private修饰的方法会被隐式转换为final
建议:看看final和private修饰方法的区别
final保证的是方法不会被重写,但是能被访问到;
private保证的是内部使用,不对外公开,所以外部既访问不到也不可能重写。
Blog:http://blog.sina.com.cn/s/blog_634dabf00100hwnz.html
如:final int i = 10;
那么这个作用中的唯一的i这辈子都只能是10。
final修饰成员变量时必须初始化,一旦初始化不可再赋值。
final修饰的成员变量相当于是常量,访问时不需要地址,而直接访问值。
还有一种情况:final修饰的类,对其内的属性是不影响的(可以改变其内属性的值)
比如:
Tips:
成员变量:类内部的变量(可以声明而不初始化)
局部变量:方法内部的变量(必须声明必须初始化)
Tip:
因为内存是堆栈结构的,当访问一个变量的时候,会访问他的引用对象,通过引用对象的链接地址找到具体的值。
现在则是直接访问值,没有了地址之类的中间过程。
4、final和static修饰变量的区别
难免片面,欢迎指正。
尊重原著:海子
blog:http://www.cnblogs.com/dolphin0520/p/3736238.html
1、final修饰类
通过以上可以得知,final修饰的类不可以被继承,既然类都不能被继承方法肯定也不能被重写(所以:其实final类中的方法被隐式的转换为final的方法)。
前提:final类的使用前提是这个类绝不可能被继承。
意义:final类的好处是这个类中的方法不会被重写,十分的安全。
2、final修饰方法
以上证明final修饰的方法不能被重写。
前提:明确禁止方法被子类覆盖的情况下。
意义:安全。
注意:private修饰的方法会被隐式转换为final
建议:看看final和private修饰方法的区别
final保证的是方法不会被重写,但是能被访问到;
private保证的是内部使用,不对外公开,所以外部既访问不到也不可能重写。
Blog:http://blog.sina.com.cn/s/blog_634dabf00100hwnz.html
3、final修饰变量(常量、成员变量和局部变量)
final修饰的常量只能初始化,不可在赋值,如:final int i = 10;
那么这个作用中的唯一的i这辈子都只能是10。
final修饰成员变量时必须初始化,一旦初始化不可再赋值。
final修饰的成员变量相当于是常量,访问时不需要地址,而直接访问值。
还有一种情况:final修饰的类,对其内的属性是不影响的(可以改变其内属性的值)
比如:
Tips:
成员变量:类内部的变量(可以声明而不初始化)
局部变量:方法内部的变量(必须声明必须初始化)
Tip:
因为内存是堆栈结构的,当访问一个变量的时候,会访问他的引用对象,通过引用对象的链接地址找到具体的值。
现在则是直接访问值,没有了地址之类的中间过程。
4、final和static修饰变量的区别
难免片面,欢迎指正。
尊重原著:海子
blog:http://www.cnblogs.com/dolphin0520/p/3736238.html
相关文章推荐
- C# system.web.ui生成html
- 百度地图SnapshotReadyCallback截屏
- 吃完饭继续来码字了 C++ 析构函数 传值,this指针
- 自定义类型转换器
- 打破Android应用65K方法数魔咒
- Android4.0-Fragment框架实现方式剖析
- 几种常见的排序算法及其复杂度——快速排序(二)
- 番外篇--体验cas server单点登录
- 【极客头条征文】主编就是我
- 财政部 卫生部关于印发 《医疗收费票据使用管理办法》的通知
- 文件接收上传
- Spring学习记录-AOP
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- 49、android studio 使用技巧记录
- 升级到win10时VirtualBox和ie的两个小问题
- Java 时间格式 new Date()
- 常见的控件(2)
- Android 5.0 双卡短信处理
- GIT 技巧
- Avoiding memory leaks ---- Context Leak 篇