final的作用类似C/C++的const但稍微有些差异。
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
- final用来修饰类时,整个类不能再被继承(例如String),只是说该类不能被继承,但其生成的对象还是可以修改的。
- final用来修饰方法时,该方法不能被覆写(private方法默认是final的)。
- final用来修饰变量时,几个关键点:
1)修饰基本类型变量,表示该变量不能被修改。
2)修饰对象引用时,表示该引用不能再改为引用其它对象,但是被引用的对象是可以修改的。
3)成员变量必须在定义处或者构造器中赋值,而局部变量必须在定义处赋值。
已经有人写过很详细的博客了,这里就不在展开,参考:https://www.cnblogs.com/dolphin0520/p/3736238.html
示例代码:
final class FinalClass {
int para;
void UpdatePara(int newPara) {
para = newPara;
}
}
class FinalMethodClass {
final void Method() {
System.out.println("Can't be override");
}
}
public class FinalKeyWord extends FinalMethodClass /* -extends FinalClass */ {
final int i = 5;
final int j;
/* -final FinalClass obj; */
final FinalClass obj1 = new FinalClass();
final FinalClass obj2;
public FinalKeyWord() {
obj1.UpdatePara(i);
obj2 = new FinalClass();
j = 10;
final int k = 20;
}
/* -
@Override
void Method() {
}
*/
public static void main(String[] args) {
}
}
网友评论