Posted on 2010-08-17 16:39
赞劲小子 阅读(468)
评论(0) 编辑 收藏 引用 所属分类:
JAVA基础
Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。可以修饰的对象: final变量、final方法和final类。
1. final类不能被继承,没有子类,final类中的方法默认是final的。
2. final方法不能被子类的方法覆盖,但可以被继承。
3. final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
4. final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
final int X=3;
X=4; //出错
final标记的成员变量必须在声明的同时或在该类的构造方法中显式赋值,然后才能使用。
class Test
{
final int X=3;
}
或者:
class Test
{
final int X;
Test()
{
X=3;
}
}
5. 方法中定义的内置类只能访问该方法内的final类型的局部变量,用final定义的局部变量相当于是一个常量,它的生命周期超出方法运行的生命周期,这种情况的应用,我们已在第三章中讲过。将一个形参定义成final也是可以的,这就限定了我们在方法中修改形式参数的值。
6. 但这个“常量”也只能在这个类的内部使用,不能在类的外部直接使用。当我们用public static final共同标记常量时,这个常量就成了全局的常量。而且这样定义的常量只能在定义时赋值,即使在构造函数里面也不能对其进行赋值。如:
class Xxx
{
public static final int X=3
......
}