丁小铭。 2020-02-16 20:45 采纳率: 50%
浏览 369

请问在Java中,final关键词在实际开发中具体有什么作用和意义?

图片说明

如图中红框,这两个成员变量用final关键词修饰后有什么作用和意义?百度查了说final修饰的变量不能被修改,final修饰的变量必须显示初始化。

实在是搞不懂不能修改和必须显示初始化到底有什么好处,求教大牛解答,万分感谢!

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-02-16 21:21
    关注

    final主要是为了避免派生和在派生类中被修改/重写
    体现了面向对象三原则中的封装原则。(另外两个原则是继承和多态)

    比如说String类,就是一个final类,为什么要final?或者不允许继承,因为这样一来,String这个类的设计者(Oracle公司的程序员,或者Sun的程序员),就可以放开手对它的内存组织、代码算法做优化。
    如果允许继承,那么需要考虑的问题就很多了。而且引入很多复杂的兼容问题。

    你可以类比,为什么一个类的成员要定义为private,这同样体现了封装原则。因为你不希望调用者绕过你的接口(公开的方法)直接修改类的状态。
    一样的道理,final阻止了调用者在派生类的自定义行为。

    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作