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

相关文章

  • kotlin修饰符

    1. open、final 和 abstract 修饰符:默认为 final 修饰符相关成员评注final不能被重...

  • final修饰符

    final修饰符是java中比较简单的修饰符,但也是一个被误解最多的修饰符。final可以修饰变量,被final修...

  • Java中的final修饰符

    Java中的final修饰符 Java中final修饰符既可以修饰变量、方法,也可以修饰类。用final修饰的变量...

  • Java 权限修饰符

    修饰符:权限修饰符:private,默认的,protected,public状态修饰符:static,final抽...

  • Java基础_final修饰符

    final修饰变量 final关键字可以修饰类、变量、方法。 final修饰符 final修饰的变量不可被改变,一...

  • Swift中的final修饰符

    Swift中的final修饰符 Swift中的final修饰符可以防止类(class)被继承,还可以防止子类重写父...

  • 使用Powermock模拟final类或方法

      对于使用final修饰符修饰的类或方法,都是不能被继承的,Mockito也不支持mock带final修饰符的类...

  • 类修饰符和方法变量修饰符

    类修饰符 interface abstract final 方法及变量修饰符 public protected p...

  • Java基础知识整理-String类

    先思考下以下问题: 1.String类能被继承吗? String类被final修饰符所修饰,被final修饰符所修...

  • java代码开发注意事项

    1、尽量指定类的final修饰符 带有final修饰符的类是不可派生的。 在Java核心API中,有许多应用fin...

网友评论

      本文标题:final修饰符

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