您的位置:首页 > 其它

根据海子blog经过手动验证思考的 final关键字总结

2015-08-06 13:54 239 查看
final关键字 (修饰常量、变量、方法、类)

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: