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

    欢迎学习 Java 基础文章系列之 final 关键字

    • final 代表什么意思?
      • final 通常是指无法被改变或者不能被改变的,什么情况下不想被改变呢?
        • 不想改变可能有两种原因:设计或者效率。
    • 在Java中 final 关键字会在哪几个地方使用到?
      • 有三种地方使用:数据(成员变量、参数)、方法、类。
        • final 数据(成员变量、参数)
          常量以关键 final 表示,必须是基本数据类型。
          对于基本类型使数值恒定不变,而用于对象引用,使引用恒定不变,一旦引用被初始化指向一个对象,就无法改为指向另一个对象,然而对象其自身却是可以被修改的,Java 并未提供使任何对象恒定不变的途径(但是可以自己编写类已取得是对象恒定不变的效果),这一限制同样适用于数组,它也是对象。
          • 空白 final
            Java 允许生成:“空白 final”,即被声明为 final 但又未给定初始值的域。
          • final 参数
            Java中允许在参数列表中以声明的方式将参数指明为 final。无法在方法中更改参数引用所指向的对象。
            你可以读取参数,但却无法修改参数,这一特性主要用来向匿名类传递数据。
        • final 方法
          final 方法的考虑:出于对设计的考虑:确保在继承中使方法行为保持不变,并且不会被覆盖,或者出于效率(遭受劝退了)。
          该方法不会被重写(覆盖、覆写)。
          final 和 private 关键字
          类中所有的 private 方法都是隐式地指定为 final 的。由于无法使用 private 声明的方法,所以也就无法重写该方法。
          如果试图重写一个 private 方法(隐含式的 final),似乎是可行的,并且编译器也不会提示错误。
          “重写(覆盖、覆写)”只有在某方法是父类的接口(非interface)的一部分时才会出现。
          final修饰的方法在特定的访问权限下可以被继承。
          这是因为,方法是否被final修饰与方法的访问权限是两回事,没有任何关系,被final修饰的方法和未被final修饰的方法都可以自由的指定访问权限。
          我们有兴趣去谈论final关键字和访问权限关键字在修饰方法的过程的起到的作用,如下表(声明:final和访问权限是两个独立的概念,没有任何比较意义,所有本表仅方便读者理解,不可作为正统知识)
    protect关键字 final关键字 private关键字
    是否可以继承
    是否可以重写
    小结 private < final < protect (仅适用于方法)

    正如上表所示,private实现了final方法不可重写的功能,并附加不可继承功能。(再次声明:final和访问权限是两个独立的概念,没有任何比较意义,所有上表仅方便读者理解,不可作为正统知识)可以对private方法添加final关键字,但是这种做法没有任何意义。

    	* final 类
    

    final 类的考虑:对该类的设计永不需要做任何变动,或者出于安全的考虑不希望它有子类。
    该类不能被继承,final 类中所有的方法都是隐式指定为 final 关键字的。

  • 相关阅读:
    ADF_Data Binding系列2_使用URL Service Data Control
    PLSQL 逻辑多线程
    PLSQL 逻辑多线程机制
    ADF_Data Binding系列1_使用Bean Data Control
    ADF_Controller系列5_通过绑定TasksFlow创建Train
    ADF_Controller系列4_通过创建ADF Menu作为页面向导(Part2)
    ADF_Controller系列3_通过创建ADF Menu作为页面向导(Part1)
    ADF_Controller系列2_绑定TasksFlow、Region和Routers(Part2)
    ADF_Controller系列1_绑定TasksFlow、Region和Routers(Part1)
    ADF_Starting系列9_使用EJB/JPA/JSF通过ADF构建Web应用程序之测试J2EE Container
  • 原文地址:https://www.cnblogs.com/GuyCui/p/15536050.html
Copyright © 2011-2022 走看看