Java关键字介绍之final - 编程入门网
Java关键字介绍之final时间:2011-04-13 51cto hangjunhd在Java中声明属性、方法和类时,可使用关键字final来修饰。final变量即为常量,只能 赋值一次;final方法不能被子类重写;final类不能被继承。 1.final成员 声明 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会 更改,那么它能安全地在寄存器中高速缓存该值。final 字段还通过让编译器强制该字段为 只读来提供额外的安全级别。 1.1关于final成员赋值 1)在java中,普通变量可默认初始化。但是final类型的变量必须显式地初始化。 2)final 成员能且只能被初始化一次。 3)final成员必须在声明时(在final变量定义时直接给其赋值)或者在构造函数中被初 始化,而不能在其它的地方被初始化。 示例1 Bat.java
结果:
在main方法中有两行语句注释掉了,如果你去掉注释,程序便无法通过编译,这便是说, 不论是i的值或是list的类型,一旦初始化,确实无法再更改。然而b可以通过重新初始化来 指定i的值或list的类型。 Java关键字介绍之final(2)时间:2011-04-13 51cto hangjunhd1.2 final引用字段的无效初始化 要正确使用final字段有点麻烦,对于其构造子能抛出异常的对象引用来说尤其如此。因 为 final 字段在每个构造器中必须只初始化一次,如果 final 对象引用的构造器可能抛出 异常,编译器可能会报错,说该字段没有被初始化。编译器一般比较智能化,足以发现在两 个互斥代码分支(比如,if...else 块)的每个分支中的初始化恰好只进行了一次,但是它 对 try...catch 块通常不会如此“宽容”。 下面这段代码通常会出现问题。
你可以这样修改。
1.3关于final成员使用 当你在类中定义变量时,在其 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |