final可以修饰属性、方法和类。修饰的元素是不可变的
1.final变量
package lesson007;
public class FinalFieldTest {
private final int color_red; //final变量要赋值
public final int color_blue=2;
public static final int COLOR_YELLOW=3;//静态final声明时就要赋值
public FinalFieldTest(){ //在构造函数中赋值
color_red=1;
}
public void test(){
final int color_back=4;
// color_back=5;//不能再次赋值
System.out.println(this.color_blue);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(FinalFieldTest.COLOR_YELLOW); //直接调用静态变量
FinalFieldTest a=new FinalFieldTest();
a.test();
// System.out.println(FinalFieldTest.color_blue); 不能直接调用
}
}
运行结果:
3
2
final方法
final修饰的方法为最终方法、不能被覆盖,即不能在子类中重写该方法。
final类
final修饰的类也称为最终类,不能被继承,即没有子类