这个关键字个人感觉在日常编码中不是经常用到,在某些情况下还是被IDEA提示需要加final关键字,但是经常会在一些基础的面试中问到,很多时候只是大概知道不能变,具体什么不能改变呢?
1.final 修饰的类不能被继承
2.final修饰的方法不能被重写
3.final修饰的变量不能改变
其中第三点很关键,不能改变的是变量的引用,变量的内容在一些情况下是可以修改的。说的太多,看几个例子吧。
例一:
图中的demo1被final修饰,但名字可以修改后正常输出。
例1例二:
将demo2赋值给demo1,IDEA提示“cannot assign a value to final variable 'demo1'”,说明demo1的引用不能指向demo2
例2例三:
将Demo 1,2,3加入final数组里面,改变数组的每个元素是可以的。
例3以上:
1.单纯改变final修饰的变量对象中的内容是可以的,例1
2.改变final数组的每个元素是可以的,等于改变数组的内容,例 3
3.改变final变量的引用指向另外一个变量,是不可以的,例 2
另外大神的总结如下:
final修饰基本数据类型,值不可变
final修饰引用数据类型,地址不可变
上面是引用类型的例子,基本类型可以自己写写了。
基于上面的规则,一些不想被改变的变量,类,方法可以加final修饰。
------------------
以上文字,也可能不正确,请您仔细推敲。
如果对您有帮助,记得双击么么哒。
-------------------
网友评论