版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标掌握final关键字的使用方法,理解final类、final方法以及final变量的特点及其用法。主要内容final类final方法final变量1.final类在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。final关键字代表“这是无法改变的”或者“最终”的含义。被final修饰的类、变量和方法具有以下特点:final修饰的类不能够被继承;final修饰的变量是常量,只能赋值一次;final修饰的方法不能被子类重写。1.final类在定义类时可以使用final关键字修饰类,被final修饰的类不能够被继承,也就是说该类不能派生出其他的子类。当子类继承父类时,将可以访问到父类中的内部数据,并可以通过父类方法来改变父类方法的实现细节,这可能导致一些不安全因素。为了保证某个类不能被继承,则可以使用final关键字修饰。编译例4-5会有编译错误:publicclassEx4_5{ publicstaticvoidmain(Stringargs[]){}}//使用final关键字修饰Person类finalclassPerson{}//定义Teacher类继承Person类classTeacherextendsPerson{}2.final方法当一个类的方法被final修饰后,这个类的子类不能够对该方法进行重写。很多时候,允许一个类派生出子类,但是这个类中的某些方法不希望子类修改,例如:Java提供的Object类中有的getClass()方法就是一个final修饰的方法,Java不希望继承Object类的子类对其进行修改,所以使用final关键字对其进行密封。但是,对于该类下的toString()、equals()等方法,则允许子类重写,因此没有使用final关键字修饰这些方法。下面通过例4-6验证被final修饰的方法不能被重写。2.final方法【例4-6】重写final方法编译错误演示2.final方法当编译例4-6会出现下列编译错误:根据错误说明可以看出,Person类中被final修饰的fun()方法不能够被重写,因此能够得出结论当类中的方法被final修饰时,其类的子类不能够对该方法进行重写。正是由于final方法的这种特性,当在父类中定义了某个方法时,如果不希望子类重写,就可以使用final关键字修饰该方法。3.final变量在Java中,变量有局部变量和成员变量之分,final关键字修饰局部变量和成员变量具有不同的表现形式:final修饰局部变量
对于方法中的局部变量,可以用final关键字修饰,被final修饰的变量为常量。在Java中,系统不会对局部变量进行初始化,局部变量必须由程序员显示初始化。因此使用final局部变量时,既可以在定义时指定默认值,也可以不指定默认值。3.final变量
如果final修饰的局部变量在定义时没有指定默认值,则可以在后面代码中对该final变量赋初始值,但它只能被赋值一次,也就是说,局部变量在定义时可以不赋值,但是,当第一次赋值之后就不能再修改该final变量的值。如果再次修改final变量的值则编译器在编译期间会报错;
如果final修饰的局部变量在定义时已经指定默认值,则后面代码中不能再对该变量进行改变,例如:例4-7尝试修改num的值编译会出错。publicclassEx4_7{ publicstaticvoidmain(String[]args){ finalintnum=1;//第一次对final局部变量赋值 num=2;//修改final修饰的变量num }}3.final变量final修饰局部变量
类的成员变量有静态成员变量和非静态成员变量之分,成员变量是随类的初始化或对象初始化而初始化的。
当类初始化时,系统会为该类的静态成员变量分配内存空间,并分配默认值。
当创建对象时,系统会为该对象的非静态成员变量分配内存空间,并通过调用构造方法为其分配默认值。3.final变量
对于final修饰的成员变量,一旦有了初始值,就不能重新被赋值,如果既没有在定义成员变量时指定初始值,也没有在构造器中对成员变量指定初始值,那么这些成员变量将一直是系统默认分配的0、‘\u0000’、false或null,这些成员变量就完全失去了意义,因此在Java语言中final修饰的成员变量必须由程序员指定初始值。也就是说,final关键字修饰成员变量时,类的成员变量必须被赋初值,否则会出现编译错误。
例4-8验证上述结论:publicclassEx4_8{ publicstaticvoidmain(Str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽省导游证考试旅游法规题
- 2026年新型冠状病毒防控知识培训
- 2026年Python程序员面试题及答案解析
- 思想情况汇报【任职一年来的思想工作情况汇报】(2篇)
- 小学专业标准试题及答案
- 2026年幼儿园如何管理好班级
- 2026年小壁虎借尾巴课件幼儿园
- 2026年幼儿园大班好吃的野菜
- 2026年幼儿园中班谁会飞课程课件
- 企业文化价值观认真落实承诺书5篇
- 售后服务管理制度汇编15篇
- 乡卫生院在预防艾滋病母婴传播中的性别平等与妇女权益保护
- DB11T 408-2016 医院洁净手术部污染控制规范
- 港区泊位码头工程施工组织设计(图文)
- GB 15979-2024一次性使用卫生用品卫生要求
- 码头经营管理制度
- 酒店电子商务
- CCS检验规范(05-9-20)资料
- 2019年广西全国统一高考文综卷地理试卷(新课标ⅲ)及解析
- 城市轨道交通屏蔽门系统检修PPT完整全套教学课件
- 孤独症儿童教育康复方法与技能 孤独症儿童康复之地板时光疗法
评论
0/150
提交评论