美文网首页
final修饰符

final修饰符

作者: 一如既往wfqwfq | 来源:发表于2019-08-26 14:16 被阅读0次

    1、final关键字

    final关键字用于修饰类、方法和变量,它修饰的类、方法和变量是不可改变的

    2、final修饰成员变量

    final修饰的成员变量一旦有了初始值,就不能被重新赋值。所以,final修饰的成员变量必须在创建对象前对它初始化,否则编译编译报错。因为如果使用系统默认分配的 0、false、null等,那final将失去它的意义。(final修饰的成员变量需要程序员显式地指定初始值)

    指定初始值方法:

    • 类成员变量:必须在静态代码块或声明该变量时赋值
    • 普通成员变量:必须在非静态代码块、声明该变量时或构造器中赋值

    3、final修饰局部变量

    系统不会对局部变量进行初始化,所以局部变量需要程序员显示赋值。final修饰局部变量时,既可以在定义时赋值,也可以在后面用到时赋值,但是只能赋值一次。
    注:不可对final修饰的形参赋值

    4、final修饰方法

    final修饰的方法不可以被重写。(可以被重载)

    特殊例子:final修饰一个 private 方法。这个方法对于子类时不可见的,所以子类无法重写该方法。如果子类定义一个与父类private方法相同的方法,这不属于重写,属于子类定义一个新方法。

    5、final修饰类

    final修饰的类不可被继承,防止子类重写父类方法,导致一些不安全的因素。

    6、final修饰基本数据类型和引用类型的区别

    final修饰基本数据类型变量时,不能对变量重新赋值,所以该变量不会被改变。


    image.png

    final修饰引用类型时,保存的仅仅是一个引用,它只保证该引用的地址不被改变,引用的内容仍然是可以被改变的。
    从这个图来看,数组arr已经被改变了。


    image.png

    相关文章

      网友评论

          本文标题:final修饰符

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