java——final
来源:互联网 发布:刘斐和郭汝瑰 知乎 编辑:程序博客网 时间:2024/05/19 08:02
概述
final的基本意思是不能改变,类似于const,但final的应用范围比const广,java中final可修饰数据对象,方法,类
final修饰数据对象
final修饰数据对象时意义同const,final可修饰的数据对象包括:
- 类数据成员对象
- 方法参数对象
- 方法内局部对象
blank final
- 如果是blank final,必须确保在首次访问时赋初值,没有初值(或者为0)的blank final意义不大,获取初值后的blank final同非blank final一样,不能在改变
- 类数据成员对象的blank final,java要求在每个构造函数中赋初值(java确保构造函数被首个调用,普通方法的调用编译器无法控制)
- 方法内局部对象的blank final,要求在方法内首次访问时必须赋初值,如果没有被访问,可以不赋初值(blank final never used,blan final是多余的)
class Garden{ Garden() { System.out.println("Garden"); grassCount = 8; } Garden(int gCount) { System.out.println("Garden"); grassCount = gCount; //grassCount = 28; } final int grassCount; final int flowerCount = 5; void clean(final int workers) { final int times; times = 15; for(int i = 0; i < times; ++i) { System.out.println("clean"); } //times = 18; }}
final修饰方法
final修饰方法表示该方法不能被派生类覆写,阻止了其他类改变final方法的行为
final修饰方法规则:
- private方法本身就不可能被派生类覆写,因此final修饰private方法无意义,尽管可以这么做
- final不能修饰abstract方法,因为abstract方法天然就要求派生类实现abstract方法定义新行为
- final不能修饰interface方法,因此interface方法天然就要求实现类实现方法定义新行为
final修饰类
final修饰类表示该类不能被派生,阻止了其他类改变final类的行为
final修饰类规则:
- final不能修饰abstract类,因为abstract类天然就要求派生类改变abstract类行为
- final不能修饰interface,因为interface天然就要求实现类实现interface中所有方法定义新行为
0 0
- final方法、final变量、final类、final对象—Java
- java——final
- Java关键字—final
- Java杂记——final
- java——final关键字
- java关键字——final
- java——final关键字
- Java——关键字final
- JAVA——final关键字
- java 语法 —— final
- Java——Final关键字
- java基础——final
- Java基础—关键字final
- 谈谈JAVA关键字—final
- java——类——final
- 【Java基础】——之Final
- Java基础知识——final关键字
- java——final、finally、finalize
- codevs1540 银河英雄传说(NOI 2002)
- edclipse cdt
- 学习笔记之JavaSE(6)--Java基础语法5
- 手势GestureOverlayView源码详解
- cpp——多重继承——构造 复制 析构 赋值
- java——final
- maven项目 关于Eclipse报:" cannot be read or is not a valid ZIP file"的解决方案
- Linux系统调用列表
- Java二进制,原码、反码、补码、位运算
- WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
- Android手势源码浅析------手势的形成(Gesture)
- MVC
- NOIP 2013 货车运输
- OpenCV学习笔记大集锦