Java面向对象前言
——Final关键字
一、 Final的用途
a) final是一个关键字,可以用于修饰类,成员变量,成员方法。
b) final修饰的成员在编译阶段绑定,称为静态绑定(staticbinding),final修饰的变量运行期初始化,不可改变。
二、 特点
a) 它修饰的类不能被继承
b) 它修饰的成员变量是一个常量。
i. final修饰的常量定义一般都有书写规范,被final修饰的常量名称,所有字母都大写
ii. 用final修饰的成员变量表示常量,值一旦给定就无法改变
1. 使用final修饰的变量可以保存哪些值?
a) 修饰基本数据类型变量里面放的就是实实在在的值,如1,“abc”等。
b) 而引用类型变量里面放的是个地址,用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变。
c) 它修饰的成员方法是不能被子类重写的。
i. 思考和练习:能不能被重载?
ii. Final和private关键字
1. 类中所有的private方法都隐式指定为final的。(ps:可以对private方法添加final修饰,但没有什么意义)
三、 Final关键字的优点
a) final关键字提高了性能。JVM和Java应用都会缓存final变量。
b) final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
c) 使用final关键字,JVM会对方法、变量及类进行优化。