来源:网络 | 2007-4-19 | (有2823人读过)
1.1.1. final变量不能被改变; 当利用final修饰一个属性(变量)的时候,此时的属性成为常量。 注意JAVA命名规范中常量全部字母大写: Final int AGE=10; 常量的地址不可改变,但在地址中保存的值(即对象的属性)是可以改变的。 在JAVA中利用public static final的组合方式对常量进行标识(固定格式)。
Final变量是在整个类被创建时候被赋值,之后就不能改变了。 对于final变量,如果在声明的时候和构造的时候均不进行赋值,编译出错。
对于利用构造方法对final变量进行赋值的时候,此时在构造之前系统设置的默认值被覆盖。
常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值。Final int x=3; ②在构造的时候赋值。 Class A{ Final int x=3; Public A(){ x=4; } }
1.1.2. final方法不能被改写; 利用final定义方法:这样的方法为一个不可覆盖的方法。 Public final void print(){}; 为了保证方法的一致性(即不被改变),可将方法用final定义。 如果在父类中有final定义的方法,那么在子类中继承同一个方法。 如果一个方法前有修饰词private或static,则系统会自动在前面加上final。即private和static方法默认均为final方法。
注:final并不涉及继承,继承取决于类的修饰符是否为private、default、protected还是public。也就是说,是否继承取决于这个类对于子类是否可见。 Final和abstract永远不会同时出现。
1.1.3. final类不能被继承; final修饰类的时候,此类不可被继承,即final类没有子类。这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生。 String 类数据final类 ,目的是提供效率保证安全。
|