`
len-len
  • 浏览: 22254 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

final讲解

    博客分类:
  • java
阅读更多

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
	}
} 

 

分享到:
评论
1 楼 yangnanenana 2012-02-27  
总结的很好,学习~

相关推荐

    java中final和static讲解及实例

    java中final和static讲解及实例

    final CUT PRO功能讲解

    《final CUT PRO功能详解:开启专业视频后期制作之旅》 对于初涉视频后期制作领域的学习者而言,final CUT PRO(以下简称FCP)无疑是一把开启专业制作大门的钥匙。作为苹果公司旗下的旗舰级非线性编辑软件,FCP不仅...

    final关键字和static_用法

    通过上述的讲解,我们可以看出`static`关键字在Java中同样非常重要。它不仅能够让我们创建类级别的成员,还能提高代码的组织性和可读性。合理地利用`static`可以简化代码的结构,使程序更加清晰易懂。

    hibernate-release-5.0.7.Final.zip

    在传智播客黑马程序员2016年的Hibernate课程中,讲师深入讲解了如何使用5.0.7.Final版本进行实际项目开发,包括实体类设计、配置文件设置、CRUD操作、关联映射、查询优化等关键知识点,旨在帮助学员快速掌握...

    举例讲解Java中final关键字的用法

    Java中的`final`关键字是一个非常重要的概念,它用于表示不可变性或终结状态。下面我们将详细探讨`final`关键字在修饰变量、方法和类时的不同用法。 1. **final变量** - 常量定义:`final`变量一旦被初始化后,其...

    Final Cut Pro X全面教程

    8. **导出与交付**:最后,教程会讲解如何根据不同的需求设置导出参数,优化视频质量和大小,并进行最终的导出和分享。 9. **实战项目**:通过实际的剪辑项目,学习者可以将所学知识付诸实践,提高自己的剪辑技能。...

    netty-netty-4.1.32.final-remark.zip

    这个压缩包 "netty-netty-4.1.32.final-remark" 很可能包含了上述知识点的详细讲解,以及 Tony 老师对这些内容的见解和实践建议。通过学习,开发者可以深入理解 Netty 的工作原理,提高网络应用的开发效率和性能。

    CCNA第二学期各章考试和final exam

    标题"CCNA第二学期各章考试和final exam"指的是Cisco Certified Network Associate(CCNA)认证的第二学期学习阶段的考试内容,特别是针对局域网(LAN)交换技术的测试。这表明我们将探讨的是网络基础、网络设备、...

    Final Cut Pro PDFs

    2. **基本操作**:讲解导入媒体、组织素材、剪辑基础、添加转场和特效等步骤,帮助新手快速上手。 3. **颜色校正**:详述色彩调整工具的使用,如Color Board和Color Correction Inspector,以及如何创建和应用LUTs...

    Linux 2.6内核标准 Part4 (Final)

    本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的...

    关键字Final

    下面将详细讲解`final`关键字的五种主要使用方式。 1. **常量(Final Variables)** `final`关键字可以用来声明一个常量,一旦赋值后就不能再更改。这有助于保证数据的完整性,防止意外修改。例如: ```java ...

    day10-final、接口、多态.pdf

    本文档主要讲解了 Java 语言中的 final 关键字、接口和多态的概念。 首先,final 关键字用于修饰不可改变的内容,可以修饰类、方法和变量。被 final 修饰的类不能被继承,方法不能被重写,变量不能被重新赋值。例如...

    hibernate-release-4.2.21.Final.zip

    这些教程涵盖了从基础概念到高级特性的全面讲解,包括实体管理、事务处理、缓存策略、查询优化等多个方面。通过这些教程,开发者可以快速掌握如何配置Hibernate,创建持久化类,以及如何执行CRUD操作。 4. **核心...

    review_of_final_exam.rar_ssd2_ssd2 exam_ssd2 final_ssd2 final ex

    在压缩包中的"review_of_final_exam.doc"文件,很可能是对这些知识点的详细讲解和总结,包含可能的考试重点、习题解答示例以及备考建议。为了充分准备SSD2课程的期末考试,学生应该仔细阅读并理解这个文档中的每一个...

    finalfinal_heating_cooling_smart_

    深入讲解,智能温控系统通常会包含以下关键知识点: 1. **数据采集**:系统会持续监测环境温度,这可能通过与温度传感器(如NTC热敏电阻或DS18B20数字温度传感器)的连接实现,LabVIEW可以轻松处理这些传感器的数据...

    Final Cut Pro

    - 高级调色工具讲解 - 动画与运动图形制作 - 插件及第三方工具集成 - 导出与发布流程详解 #### 四、Final Cut Pro 的应用场景 - **电影制作**:用于剪辑电影预告片、短片等。 - **电视节目编辑**:适用于新闻...

    Web_Ch2_final.zip

    Web_Ch2_final.pdf将深入讲解这些基础知识,使读者对Web的工作原理有更清晰的认识。 二、HTML与CSS HTML(HyperText Markup Language)是网页内容的结构化标记语言,用于定义网页的布局和内容。CSS(Cascading ...

    equals与hashCode方法讲解

    equals 与 hashCode 方法讲解 equals 方法和 hashCode 方法是 Java 语言中两个重要的方法,它们都是在 Object 类中定义的。equals 方法用于比较两个对象是否相等,而 hashCode 方法用于返回对象的哈希码。 在 Java...

    深入浅析Java中的final关键字

    下面将详细讲解`final`关键字的用途和使用细节。 一、`final`关键字的基本用法 1. 修饰类 当一个类被`final`修饰时,它不能被其他类继承。这是为了防止类的结构被修改,确保类的封闭性。例如,Java中的`String`类...

Global site tag (gtag.js) - Google Analytics