final可以修饰属性,可以修饰变量,可以修饰方法也可以修饰类
一、final修饰属性
错误写法
正确写法
总结:final若是修饰属性则必须给属性初始值
二、final修饰变量
错误写法1
错误写法2
正确写法
总结:final若是修饰变量,定义时候可以不给初始值,但是使用的时候必须给定初始值,其次若是给定了初始值,那么该值就不可以再修改
三、final修饰方法
final修饰方法,该方法不可被重写(体现在继承)
final修饰方法中的参数
我们发现只要每次重新创建对象时候,方法中参数的值是可以改变的,这主要是因为final定义时候表示的是它的地址不再改名,而值是发生改变的,内存分析如下
抱歉(下次补)
既然提到地址不改变,指向内容可以发生改变,那我们就可以分析到,final修饰基本数据类型是不可变,若是修饰引用类型,内存地址是不变,指向内容可以发生改变,代码示例如下
四、final修饰类
final修饰的类不可以被继承(例如String、Scanner等类)不做演示