final关键字

关键字final

javafinal关键字在不同的场景下,有不用的用法,但是都是表达相同的意思即不能被改变。接下来,详细的讲解final修饰datamethodsclass的用法。

final修饰data

javafinal修饰的数据分为compile-time constantrun-time constant

public class Final {
private final int a = 1; //compile-time constant
private final int b = rand.nextInt(20); //run-time constant

public void test(){
a = 3; //Error: compile-time constant
b = 4; //Error: run-time constant
}
}

final修饰blank,final修饰的数据如果在定义时没有给定初值,必须在构造方法中给定初值,这样就能保证在使用对象时,fianl修饰的数据已经有初值,并且不会改变。

public class BlankFinal{
private final int j; // Blank final
private final String s // Blank final reference

public BlankFinal(){
j = 1;
p = new String();
}
}
final修饰参数
final修饰的primitives以及reference参数在函数的内部不允许被修改。

final修饰method

final修饰method从设计和性能两方面考虑;从设计上考虑,为了确保一个 method的功能不会被子类修改,可以使用final修饰,子类不能覆盖final修饰的method;从功能上考虑,final修饰的method会被当成inline calls

final修饰class

final修饰的class不能再被继承

posted @ 2015-07-25 17:24  ruccsbingo  阅读(580)  评论(0)    收藏  举报