• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

关键字final的理解

技术杂谈 勤劳的小蚂蚁 3个月前 (01-27) 67次浏览 已收录 0个评论 扫描二维码

谈谈对关键字final的理解?

关键字final表示「最终的」,可用来修饰类、属性和方法.
  • 修饰类:表示该类不能被继承,以提高程序的安全性和可读性,如String、System、StringBuffer类等。
  • 修饰方法:表示方法不能被重写,如Object类的getClass方法。
  • 修饰属性:表示变量一次赋值以后值不能被修改(常量),其名称通常大写。

关键字final修饰的基本类型变量和引用类型变量有区别吗?

对于基本类型变量,final使变量数值在一次赋值后不变;对于引用类型变量,final使变量引用在一次赋值后不变,即不能再引用其他对象,但被引用对象本身的属性是可以修改的。
示例代码如下:
final int COUNT = 1;
// COUNT = 2; // cannot assign value to final variable ‘COUNT’

final Employee emp = new Employee();
emp.name = “丙子先生”// 所引用对象的属性可变

如何初始化final所修饰的成员变量?

关键字final修饰的成员变量没有默认初始化值,其初始化方式主要有:
  • 在声明时,直接对其进行显式初始化。
  • 声明完后,在代码块中对其显式初始化。
  • 声明完后,在构造器中对其显式初始化,但注意需要在所有构造器中均对其进行初始化操作。
基本原则:保证在对象创建之前即需要对final修饰的属性进行初始化操作

扩展面试题

问:private修饰的方法与final修饰的方法有区别吗?
答:private修饰的方法被隐式地指定为final,若子类定义的方法与父类中一个private方法签名相同,则子类中定义的该方法为一个新的方法,而并不是重写父类的方法。
问:在Java中如何声明全局变量?
答:关键字static和final可以同时修饰属性,表示全局常量,即可以直接被类所调用的常量,如Math.PI。

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:关键字final的理解
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00