zoukankan      html  css  js  c++  java
  • final关键字

    三种情况:final数据、方法和类

    一、final数据

    1.   使用场景举例:
    •     一个永不改变的编译时常量。(编译时常量必须是基本数据类型,必须在这个常量定义时赋值)
    •       一个在运行时被初始化的值,而不希望它被改变。

    对于基本类型,final使数值恒定不变;对于对象引用,final使引用恒定不变,然而对象其自身却是可以被修改的。

    定义为static final:static强调只有一份,final则说明是一个常量。

    定义为final的常量,并不表示在编译时就可以知道它的值,它也可能在运行时被初始化。

     

    2.空白final

    3.final参数

      指定为final的参数,表明在方法中无法更改。

    二、final方法

    1.使用final方法的原因有两个:

      • 把方法锁定,以防止任何继承类修改它的含义。
      • 效率原因,编译器将final方法转为内嵌调用,以提高效率,但是当方法很大时无效。

    2.final和private关键字

    类中所有private方法都隐式地指定为是final的。由于无法取用private方法,所以也就无法去覆盖它。

    @Override注解可以解决该问题。

    三、final类

    将某个类的整体定义为final时,表明该类不能被继承。

    也就是说,该类的设计不能做任何改动,或者出于安全考虑,定义者不希望该类有子类。

    final类会把它所有的方法都隐式指定为是final的,因为无法覆盖它的方法。

  • 相关阅读:
    1055. [HAOI2008]玩具取名【区间DP】
    BZOJ2435:[NOI2011]道路修建 (差分)
    1084. [SCOI2005]最大子矩阵【网格DP】
    1060. [ZJOI2007]时态同步【树形DP】
    1050. [HAOI2006]旅行【并查集+枚举】
    2463. [中山市选2009]谁能赢呢?【博弈论】
    luogu P1195 口袋的天空
    luogu P1162 填涂颜色
    luogu P1223 排队接水
    luogu P1331 海战
  • 原文地址:https://www.cnblogs.com/HITSZ/p/6384948.html
Copyright © 2011-2022 走看看