浏览 4061 次
锁定老帖子 主题:Java final 学习
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-09
最后修改:2010-05-13
final 关键字表示'终态的','无法改变的', 它可以修饰非抽象类,非抽象方法及变量 final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类覆盖,但可以继承 final变量只能一次赋值,不可更改 final不能修饰构造函数 1. final类 final类不能被继承,没有子类,final类中的方法默认是final的。 如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为 final类 2. final方法 final方法不能被子类覆盖,但可以继承 第一、把方法锁定,防止任何继承类修改它的意义和实现。 第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。 3. final变量/常量 用final修饰的成员变量表示常量,值一旦给定就无法改变。 final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译 器都确保空白final在使用之前必须 被初始化 4. final参数 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值 public void f1(final int i){ //i++; //i是final类型的,值不允许改变的. System.out.print(i); } 5. static final 对于变量,表示一旦给值就不可修改,并且通过类名可以访问。 对于方法,表示不可覆盖,并且可以通过类名直接访问。 对于被static和final修饰过的实例常量,实例本身不能再改变了,但对于一些容器类型(比如,ArrayList、HashMap)的实例变量,不可 以改变容器变量本身,但可以修改容器中存放的对象 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |