Java中final关键字的作⽤与⽤法
雨丁香
教师节几月几号⼀、特点
1、final从字⾯上理解含义为“最后的,最终的”。
2、final可以⽤来修饰变量(包括类属性、对象属性、局部变量、形参),⽅法(包括类⽅法和对象⽅法)以及类。
⼆、⽤法
1、⽤来修饰数据,包括成员变量和局部变量,该变量只能被赋值⼀次且他的值不能再被改变。对于成员变量来说,我们必须在声明或构造⽅法中对它赋值。
2、⽤来修饰⽅法参数,表⽰在变量的⽣存期间它的值不能被改变。
3、修饰⽅法,表⽰该⽅法不能被重写。(因为重写的前提是⼦类可以从⽗类中继承此⽅法,如果⽗类中final修饰的⽅法同时访问控制权限为private,将会导致⼦类中不能直接继承到此⽅法。
因此,此时可以在⼦类中定义相同的⽅法名和参数,此时不再产⽣重写与final的⽭盾,⽽是在⼦类中重新定义了新的⽅法。)
public class B extends A {
public static void main(String[] args) {
}
public void getName() {
}
}
class A {
/**
拥有财富* 因为private修饰,⼦类中不能继承到此⽅法,因此,⼦类中的getName⽅法是重新定义的、
* 属于⼦类本⾝的⽅法,编译正常
*/
private final void getName() {
}
/* 因为pblic修饰,⼦类可以继承到此⽅法,导致重写了⽗类的final⽅法,编译出错
public final void getName() {
社会生活作文
平静的生活}
8的分解*/
}
4、修饰类,表⽰该类⽆法被继承,即不能拥有⾃⼰的⼦类。
三、注意
1、final关键字可以⽤于成员变量、本地变量、⽅法以及类。短歌行
2、final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。
3、你不能够对final变量再次赋值。
4、本地变量必须在声明时赋值。
5、在匿名类中所有变量都必须是final变量。
6、final⽅法不能被重写。
福建旅游景点7、final类不能被继承。
8、final关键字不同于finally关键字,后者⽤于异常处理。
9、final关键字容易与finalize()⽅法搞混,后者是在Object类中定义的⽅法,是在垃圾回收之前被JVM调⽤的⽅法。
10、接⼝中声明的所有变量本⾝是final的。
11、final和abstract这两个关键字是反相关的,final类就不可能是abstract的。
12、final⽅法在编译阶段绑定,称为静态绑定(static binding)。
13、没有在声明时初始化final变量的称为空⽩final变量(blank final variable),它们必须在构造器中初始化,或者调⽤this()初始化。不这么做的话,编译器会报错“final变量(变量名)需要进⾏初始化”。
14、将类、⽅法、变量声明为final能够提⾼性能,这样JVM就有机会进⾏估计,然后优化。
15、按照Java代码惯例,final变量就是常量,⽽且通常常量名要⼤写: