final关键字

final关键字

final基本使用

  • final修饰类,这个类就不能被继承
  • final修饰方法,这个方法就不能被子类重写
  • final修饰变量,不能够被修改

常量

被final修饰的变量叫常量,一般命名是大写下划线隔开 XX_XX这种形式

普通常量的初始化三个地方

  • 直接定义初始化:
 final int PI = 3.14;
  • 构造器中初始化
final int PI;
public A (){
    PI = 3.14;
}
  • 代码快中初始化
final int PI;
{
    PI = 3.14;
};

常量初始化就一次,如果在定义中赋值,就不能在构造器或代码块中再次赋值了

关于静态常量初始化两个地方

  • 定义
  • 静态代码块

静态常量随着类的加载而加载完毕,如果在构造器中赋值,那么会有这样一种情况,没有创建对象,导致构造器没有被调用,从而常量没有被赋值,直接编译不通过。

final类

final类不可以被继承,但是可以实例化对象

final方法

不是final类,含有final方法,虽然该方法不能够被子类重写,但仍然可以被子类继承

final使用细节

  • 一般讲,final修饰的类,其中的方法不必被final修饰

  • final不能修饰构造器

  • final和static共同使用,效率会更高,比如public final static int n;

    调用这个n的时候,不会加载类,直接调用变量n

  • 包装类(Integer String Boolean Float等)都是final类

posted @ 2021-11-11 16:28  独高的浮云  阅读(52)  评论(0)    收藏  举报