谈谈java的final关键字的学习

先说一堆废话,在java的学习过程中,一直不注重细节不注意底层不注意一些 “非必要” 的知识点。从今天起开始深入研究研究Java了。

进入主题,第一次看见final关键字是在常量定义部分,结合前面在安卓和Java的胡乱摸爬滚打过程中遇到的一些可能的问题在网上查了查final关键字。

final关键字分为4个用法:

1.定义常量

在编写程序时,我们经常需要说明一个数据是不可变的,我们成为常量。在java中,用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。更重要的是,final会告诉编译器,这个数据是不会修改的,那么编译器就可能会在编译时期就对该数据进行替换甚至执行计算,这样可以对我们的程序起到一点优化。不过在针对基本类型和引用类型时,final关键字的效果存在细微差别。需要注意的是:当修饰引用的时候,只是不可改变引用指向的变量,但是可以改变指向的变量的内容。

2.修饰参数

实际应用中,我们除了可以用final修饰成员变量、成员方法、类,还可以修饰参数、若某个参数被final修饰了,则代表了该参数是不可改变的。如果在方法中我们修改了该参数,则编译器会提示你:The final local variable i cannot be assigned. It must be blank and not using a compound assignment。

3.修饰方法(不常用)

即用final关键字修饰方法,它表示该方法不能被覆盖。这种使用方式主要是从设计的角度考虑,即明确告诉其他可能会继承该类的程序员,不希望他们去覆盖这个方法。这种方式我们很容易理解,然而,关于private和final关键字还有一点联系,这就是类中所有的private方法都隐式地指定为是final的,由于无法在类外使用private方法,所以也就无法覆盖它。(不建议使用)

4.修饰类(不常用)

类用final修饰后不能被继承,不建议使用(除非你确认这个类不可能被使用)

刚刚入门,希望各位多多指导。

发布了43 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Hitmi_/article/details/86769523