Java 中复用代码的方式就是复用类,复用类的方式有:

  1. 组合
  2. 继承
  3. 代理(并没有啥高深的含义,只是在使用类A前,新增了类B,让类B的每个方法去调用类A中对应的方法,也就是说类B代理了类A。。。不过我还是木有理解这么做的意义)

final 关键字

final 关键字可以用于修饰:数据、方法和类。

final 数据

  1. 基本类型数据:基本类型数据使用 final 修饰后,在编译期编译器可以将该常量代入任何可能用到它的计算式中,这减轻了运行期负担;
  2. 引用类型数据:引用类型数据使用 final 修饰后,该引用不能再指向其他的对象实例,但该引用当前所指向的对象的属性内容确是可以改变的;
  3. 形参数据:形参数据使用 final 修饰后,在方法内部,该形参不能再做修改(这一特性主要用来向匿名内部类传递数据);

因为 final 修饰的数据必须在使用前初始化,所以必须在定义处或者每个构造器中用表达式对 final 进行赋值。

final 方法

作用:

  1. 把方法锁住,防止集成类修改它的含义;
  2. 为了效率。早期 Java 实现中,会把 final 修饰的方法的调用转为内嵌调用。不过,在最近的 Java 虚拟机版本中(特别是 hotspot 技术),可以智能的探测方法的长度,并智能的决定是否将方法调用转为内嵌调用(不管方法有没有使用 final 修饰,所以说现在已经不存在说为了效率而使用 final 修饰方法了);
  3. 类中所有的 private 方法都隐式地指定为是 final 。由于无法取用 private 方法,所以也就无法覆盖它,这时候在多加个 final 修饰符也是无意义的;

final 类

使用 final 修饰类,不能再有继承它的子类,也因此其所有方法都隐式指定为了 final(无法继承此类,更别提覆盖其方法了)

最新文章

  1. Linux下Redis的安装与配置
  2. jq小插件--方便设置css属性
  3. 【BZOJ】3714: [PA2014]Kuglarz
  4. 安装 node-sass 的正确姿势
  5. 用Unity代码通过Xml配置生成GameObject之——前两天掉的坑
  6. 用MFC如何对子对话框进行初始化
  7. 关于如何调用苹果自带的地图APP
  8. PHP超时处理全面总结
  9. Spring框架下的 “接口调用、MVC请求” 调用参数、返回值、耗时信息输出
  10. Unattend.xml应答文件制作(WISM)-- 转自爱做梦的鱼
  11. Python基础:1.数据类型(字典)
  12. NOI2015 小园丁与老司机
  13. jquery ajax 参数可以序列化
  14. java做帐户登录失败锁定
  15. angularJS directive详解(自定义指令)
  16. HTML5 开发APP(头部和底部选项卡)
  17. 前端入门5-CSS弹性布局flex
  18. spring实例入门
  19. wx小程序-起航!
  20. MySQL存储和获取数据

热门文章

  1. 面向对象、接口编程的重要性 python 为什么引入接口interface
  2. 基于网页api(接口)实现查快递
  3. 解决\build\outputs\apk\dream-debug.apk does not exist on disk错误
  4. Linux三种网络
  5. 剑指offer 面试33题
  6. atoi函数的一种实现
  7. AFNetworking 和 ASIHTTPRequest
  8. ModelForm组件介绍
  9. MySQL数据库(8)_MySQL数据库总结
  10. rabbitmq 命令行工具 执行失败.