一、
1.final可以用来修饰的结构:类、方法、变量。
2.final 用来修饰一个类:此类不能被其它类继承。比如:String类、System类、StringBuffer类。
final class FinalA{
}
//class B extends FinalA{
//
//}
//class C extends String{
//
//}
3.final用来修饰方法:表明此方法不能被重写。比如:Object类中的getClass();
class AA{
public final void show(){
}
}
//class BB extends AA{
// public void show(){
//
// }
//}
4.final用来修饰变量:此时的“变量”就称为一个常量。
final int width=10;
public void dowidth(){
// width=20;
}
}
(1)final修饰属性:可以考虑赋值的位置有:
1⃣️显示初始化:
final int WIDTH=10;
2⃣️非静态代码块中赋值
final int LEFT;
{
LEFT=10;
}
3⃣️构造器中赋值。注意:如果有多个构造器,需要考虑是否要在每个构造器中都写一遍。
class CC{
final int RIGHT;
public CC(){
RIGHT=30;
}
}
注意:不能在方法中赋值。
(2)final修饰局部变量:
1⃣️尤其是使用final修饰形参时,表明此形参是一个变量。当我们调用此方法时,给常量赋一个实参,一旦赋值以后,就只能在方法体内使用此形参,但不能重新赋值。
(3)static final
用来修饰属性:称为全局常量。
static final
很少用来修饰方法。