目录
一、理解
final:最终的
二、可以用来修饰的结构
类、方法、变量
(一)final用来修饰一个类
不能再让其他的类继承
例如:String类、System类、StringBuffer类等都声明为final
(二)final用来修饰一个方法
表明此方法不可以被重写
例如:
Object类中的方法getClass();
getClass(); 获取当前对象所属的类
(三)final用来修饰一个变量
变量,未说明时属性,属性是变量的一种
修饰变量:此时的“变量”就称为是一个常量
final修饰属性
可以考虑赋值的位置:显式初始化、代码块中初始化、构造器中初始化
final修饰局部变量
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。 一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值
三、static final
修饰属性:全局常量
四、练习
①static修饰的属性,相较于实例变量,有哪些特别之处?
-
随着类的加载而加载
-
早于对象的创建
-
只要权限允许,可以通过“对象.static的属性”的方式进行调用
-
存在于方法区的静态域中
②final可以用来修饰哪些结构,分别是什么意思
- 类:不能再让其他的类继承
- 变量:修饰变量:此时的“变量”就称为是一个常量
- 方法:表明此方法不可以被重写
③类的属性赋值的位置有哪些?先后顺序?
默认初始化
显式初始化、代码块中初始化
构造器中初始化
通过“对象.属性”或“对象.方法”的方式赋值