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

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

时间:2015-08-06 15:07:35      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:

原文地址:http://blog.csdn.net/banlifeather/article/details/47315611

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