美文网首页
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