开发手册 欢迎您!
软件开发者资料库

Java中的final关键字

在Java面向对象编程中,final关键字大家应该都知道,在匿名内部类使用时可能经常用到。Java中的String类就用了final关键字。final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量),下面看一下final关键字的用法。

1、修饰类

当类用final修饰时,表明这个类不能被继承。当我们出于安全或某种情况考虑,不想让你写的class被继承,就可以考虑使用final。

final class Cat{       public Cat(){     }}

2、修饰方法

使用final关键字修饰方法,其它类就不可以修改该方法。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。要想方法在子类中不被覆盖,就是使用final关键字修饰方法。类的private方法会隐式地被指定为final方法。

3、修饰变量

final关键字修饰变量是用得比较多的情况,对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

class Cat{       private final int age = 0;       public Cat(){             age = 1;             final Object obj = new Object();              obj = new Object();      }}

代码中,变量age和obj的重新赋值都报错了。使用时应该注意。

修饰的变量是类或引用类型变量时,要注意只是这个变量指向对象不能更改,但对象中内容是可以修改的。