Java_final关键字详解

概念与四种用法

  • final在Java中的含义就是它本身词语的含义:最终的,最后的,不可变的。
  • 常见四种用法
    1. 可以修饰一个类;
    2. 可以修饰一个方法;
    3. 可以修饰一个局部变量;
    4. 可以修饰一个成员变量。

修饰一个类

  • 当final关键字用来修饰一个类时格式为:
public final class 类名称 {
    //...
}
  • 含义:当前这个类不能有任何的子类。(俗称太监类,不过太监类也有父类,最不济也有Object类)即,final关键字修饰的所有成员方法都不能进行覆盖重写,因为没有子类。

修饰成员方法

  • 当final关键字用来修饰一个方法的时候,这个方法就是最终方法,即不能被覆盖重写
  • 格式:
修饰符 final 返回值类型 方法名称(参数列表){
    //方法体
}

注:对于类、方法体来说,abstract关键字和final关键字不能同时使用,因为互相矛盾。

修饰局部变量

  • 使用final修饰局部变量,那么这个变量就不能被更改,“一次赋值,终生不变”
  • 对于基本数据类型来说,不可变指变量中的数值不可改变
  • 对于引用类型来说,不可变指的是变量中的地址值不可改变(地址值不变,该地址的值是可以改变的)

修饰成员变量

  • 对于成员变量,如使用final关键字修饰,那么这个变量也照样不可变
  1. 由于成员变量具有默认值,所以用了final之后必须手动赋值;
  2. 对于final的成员变量,要么直接赋值,要么通过构造方法,注意只能二选一
  3. 必须保证类中所有的重载的构造方法,最终会对final的成员变量进行赋值。

猜你喜欢

转载自blog.csdn.net/weixin_41121063/article/details/88042858