final讲解 博客分类: java finaljava
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 } }
上一篇: Day01
下一篇: fresco图片加载框架
推荐阅读
-
IntelliJ IDEA 新建一个web项目(转) 博客分类: Java IntelliJ IDEAweb项目
-
final讲解 博客分类: java finaljava
-
内部类之成员内部类 博客分类: java java内部类对象
-
(转)Outlook 日历时间块布局 html5实现 博客分类: Java Outlook时间块布局html5
-
模拟手算加法,乘法 博客分类: java java手算
-
BlazeDS中Java实体与As实体的对应关系 博客分类: FlexJava flexjava
-
Hibernate使用Native SQL报Column not found 博客分类: Java
-
Intellij Idea 常用快捷键 博客分类: Java Intellij Idea常用快捷键
-
【转】Java注释规范(Java注释中的Html标识) 博客分类: Java Java注释规范
-
IntelliJ IDEA 新建一个web项目(转) 博客分类: Java IntelliJ IDEAweb项目