final关键字
Posted jianzha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字相关的知识,希望对你有一定的参考价值。
final关键字
一、final关键字的基本用法
在Java中,final 关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)
1、修饰类
-
当用 final 修饰一个类时,表明这个类不能被继承。
-
由于final 类禁止继承,所有 final 类中所有的方法都隐式指定为是 final 的,因为无法覆盖它们。在 final 类中可以给方法添加 final 修饰词,但这不会增添任何意义。
注意:当将类的整体定义为 final 时,表明了不继承该类,也不允许别人这样做。换句话说,处于某种考虑,你对该类的设计永远不需要做任何变动,或者处于安全的考虑,你不希望它有子类。
2、修饰方法
1、用 final 修饰的方法,想要确保在继承中使方法行为保持不变,并且不会被子类覆盖。
2、类中所有的 private 方法都隐式地指定为是 final 的。
3、子类中有一个与父类相同的名称的方法(父类的方法是用private修饰的),此时并没有覆盖该方法,仅是在子类中生成了一个新的方法。
3、修饰变量
1、对于基本类型,final 使数值恒定不变;而用于对象引用,final 使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。
2、对象其自身却是可以被修改的。
4、修饰参数
Java允许在参数列表中以声明的方式将参数指明为 final。这意味着你无法在方法中更改参数引用所指向的对象。
package com.jz;
class Gizmo {
public void spin() {
System.out.println("123");
}
}
public class FinalArguments {
void with(final Gizmo g) {
}
void without(Gizmo g) {
g = new Gizmo();
g.spin();
}
// 此方法会报错
void f(final int i) {
i++;
}
int g(final int i) {
return i + 1;
}
}
参考资料:
- 浅析Java中的final关键字
- 《Java编程思想》 p140
以上是关于final关键字的主要内容,如果未能解决你的问题,请参考以下文章
[AndroidStudio]_[初级]_[配置自动完成的代码片段]