java final

来源:互联网 发布:za淘宝旗舰店是真的吗 编辑:程序博客网 时间:2024/05/23 02:07

http://blog.csdn.net/niguang09/article/details/6035813

 

http://zhidao.baidu.com/link?url=KAeS8HU79akgqBcdmRpJNRtP4ggW8-A-Vsm41BWW4ze6CXH_czHlI8wiA7-Ybz6Lz1ELd-iTFG3PHlWT9LeeAK

 

final初始化

1在定义时赋值

2在构造函数时赋值

需要注意的是,如果final修饰变量时,如果这个变量没有被用到,不赋值初始化不会报错,但是用到了就一定会报错,如果不赋值即空白final

final定义的变量并不是在编译的时候就确定下来,

如果是 final int i=Random.nextInt(100);

那么在生成多个对象的时候,他们的变量i就是随机的

但是如果是 static final int i=Random.nectInt(100),那么生成多个对象的时候,对应的变量i是确定的,这是因为static修饰,在类加载的时候就会分配一块内存,并赋值,当其他对象访问变量i时,会找到对应静态块,取出对应的值,这个值永远不变且只有一个

final修饰对象引用时,对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。

final修饰的参数传入方法时,表示此参数只能读,不能写

final修饰方法时,表示这个方法满足当前应用且不可扩展,子类可以调用其方法,但不能被重写

final修饰的类表示这个类不能被继承

0 0