final--大家都不陌生的单词,可能脑海中浮现的是"不可修改"的概念,但是这个”不可修改“是真的不能修改么?我们探讨下final不为人知的一面。还是分几个方面,final大哥娶的几个老婆搭配讲解,一个是大老婆”类“,二个是二姨太”方法“,三个是三姨太”域“。
final 类
final类顾名思义,就是在声明一个类的时候,加上关键字final,这样的类有什么特点呢?第一个想到的是,这个类我不想别人用,这个类不能被继承,还有呢?也许你就可以不知道了,还有就是所有的方法都是隐式的加上了final,那么属性呢?我可以告诉你,属性还是属性,和普通的类的属性没有任何区别。
final方法
final方法可以想象也是不能被覆盖的,你可能想在子类中加上同样的方法,来实现覆盖,可是事实是你行不通,编译器会无法通过编译。这个就很类似于private的方法了,其实从大的归类来看,我们可以把private方法归类到final方法大类中去。在下篇讲到”多态“的时候就会出现这个分类。
告诉大家一个秘密,构造器都会隐式的加了final。
final域
这个可能是最有意思的,因为大多时候,我们也用的最多,也是很多初学者或者老师讲解的时候,给了一句根深蒂固的话,它是不能修改的。但是这个修改我们要重新的定义下,从字面上理解,可能就是说不能动它了,它就在那里放着,我们用就可以了,如果这个属性是基本类型,那没问题,如果他是一个对象的引用呢?我们就要重新的审视这个问题,他是可以被"修改"的,其实这个修改是修改的是对象的内容,而不是改变的是引用。指向的还是原来的引用,只是内存里面的值改变了,从某种意义上说,这种改变可以称为”修改“。
public class A {
int s = 0;
public final void say(){
final A a = new A();
a.s=1;
final int in =0;
in = 1;//error code
}
}
分享到:
相关推荐
java中final和static讲解及实例
《final CUT PRO功能详解:开启专业视频后期制作之旅》 对于初涉视频后期制作领域的学习者而言,final CUT PRO(以下简称FCP)无疑是一把开启专业制作大门的钥匙。作为苹果公司旗下的旗舰级非线性编辑软件,FCP不仅...
- **HD和广播格式**:讲解如何处理高清视频以及符合广播标准的视频格式。 - **合格设备列表**:列出与Final Cut Pro兼容的各种硬件设备。 - **Final Cut Pro 支持**:提供官方技术支持的信息。 - **Web上的Final Cut...
通过上述的讲解,我们可以看出`static`关键字在Java中同样非常重要。它不仅能够让我们创建类级别的成员,还能提高代码的组织性和可读性。合理地利用`static`可以简化代码的结构,使程序更加清晰易懂。
在传智播客黑马程序员2016年的Hibernate课程中,讲师深入讲解了如何使用5.0.7.Final版本进行实际项目开发,包括实体类设计、配置文件设置、CRUD操作、关联映射、查询优化等关键知识点,旨在帮助学员快速掌握...
Java中的`final`关键字是一个非常重要的概念,它用于表示不可变性或终结状态。下面我们将详细探讨`final`关键字在修饰变量、方法和类时的不同用法。 1. **final变量** - 常量定义:`final`变量一旦被初始化后,其...
8. **导出与交付**:最后,教程会讲解如何根据不同的需求设置导出参数,优化视频质量和大小,并进行最终的导出和分享。 9. **实战项目**:通过实际的剪辑项目,学习者可以将所学知识付诸实践,提高自己的剪辑技能。...
这个压缩包 "netty-netty-4.1.32.final-remark" 很可能包含了上述知识点的详细讲解,以及 Tony 老师对这些内容的见解和实践建议。通过学习,开发者可以深入理解 Netty 的工作原理,提高网络应用的开发效率和性能。
标题"CCNA第二学期各章考试和final exam"指的是Cisco Certified Network Associate(CCNA)认证的第二学期学习阶段的考试内容,特别是针对局域网(LAN)交换技术的测试。这表明我们将探讨的是网络基础、网络设备、...
2. **基本操作**:讲解导入媒体、组织素材、剪辑基础、添加转场和特效等步骤,帮助新手快速上手。 3. **颜色校正**:详述色彩调整工具的使用,如Color Board和Color Correction Inspector,以及如何创建和应用LUTs...
本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的...
下面将详细讲解`final`关键字的五种主要使用方式。 1. **常量(Final Variables)** `final`关键字可以用来声明一个常量,一旦赋值后就不能再更改。这有助于保证数据的完整性,防止意外修改。例如: ```java ...
这些教程涵盖了从基础概念到高级特性的全面讲解,包括实体管理、事务处理、缓存策略、查询优化等多个方面。通过这些教程,开发者可以快速掌握如何配置Hibernate,创建持久化类,以及如何执行CRUD操作。 4. **核心...
在压缩包中的"review_of_final_exam.doc"文件,很可能是对这些知识点的详细讲解和总结,包含可能的考试重点、习题解答示例以及备考建议。为了充分准备SSD2课程的期末考试,学生应该仔细阅读并理解这个文档中的每一个...
深入讲解,智能温控系统通常会包含以下关键知识点: 1. **数据采集**:系统会持续监测环境温度,这可能通过与温度传感器(如NTC热敏电阻或DS18B20数字温度传感器)的连接实现,LabVIEW可以轻松处理这些传感器的数据...
- 高级调色工具讲解 - 动画与运动图形制作 - 插件及第三方工具集成 - 导出与发布流程详解 #### 四、Final Cut Pro 的应用场景 - **电影制作**:用于剪辑电影预告片、短片等。 - **电视节目编辑**:适用于新闻...
Web_Ch2_final.pdf将深入讲解这些基础知识,使读者对Web的工作原理有更清晰的认识。 二、HTML与CSS HTML(HyperText Markup Language)是网页内容的结构化标记语言,用于定义网页的布局和内容。CSS(Cascading ...
equals 与 hashCode 方法讲解 equals 方法和 hashCode 方法是 Java 语言中两个重要的方法,它们都是在 Object 类中定义的。equals 方法用于比较两个对象是否相等,而 hashCode 方法用于返回对象的哈希码。 在 Java...
下面将详细讲解`final`关键字的用途和使用细节。 一、`final`关键字的基本用法 1. 修饰类 当一个类被`final`修饰时,它不能被其他类继承。这是为了防止类的结构被修改,确保类的封闭性。例如,Java中的`String`类...
### 枚举完整讲解实例 #### 一、引言与问题背景 在软件开发中,我们经常遇到需要限制变量取值的情况。例如,在一个学生管理系统中,我们需要存储学生的考试等级,该等级只能是“A”、“B”、“C”、“D”或“E”。...