final修饰符

2019-08-26  本文已影响0人  一如既往wfqwfq

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
上一篇 下一篇

猜你喜欢

热点阅读