美文网首页
20180911-final关键字

20180911-final关键字

作者: LiuYanPin | 来源:发表于2018-09-11 23:52 被阅读0次

原文链接
final用来修饰变量,方法,类。

  • final variable:创建常量;
  • final methods:阻止方法被重写。
  • final class:阻止继承。

Final variables

  • 值不能被修改,如果是引用类型的话就代表不能重新指向另一个对象,但是该对象内部的值可以改变。必须被初始化(只能初始化一次),可以在多个位置被初始化。
public class FinalExample {
    final int A = 5;//直接初始化
    final int B;
    final int C;
    static final double PI = 3.1415;//直接初始化
    static final double D;
    {
        B = 1;//实例构造代码块内的初始化
    }
    static {
      //C = 1;non-static variable C cannot be referenced from a static context
        D = 1.0;//静态变量可以在静态代码块中初始化
    }

    public FinalExample() {
        C = 1;//在构造函数中初始化
    }
}

non-transitivity非传递性:对一个引用变量final保证了这个引用是final的,如果这个引用指向了一个数组,数组的成员的值还是可以变化。arrays are objects in java

Final classes

final class不能被继承。作用:

  • prevent inheritance阻止继承:例如所有Wrapper Class比如IntegerFloat
  • create an immutable class创建不可变的类:比如String

Final methods

不能被override

相关文章

网友评论

      本文标题:20180911-final关键字

      本文链接:https://www.haomeiwen.com/subject/bcwpgftx.html