【Java语言基础】final关键字

【Java语言基础】final关键字

修饰词:final 最终的最后的
final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。

final 最终的最后的
final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例变量),也可以修饰局部变量,形参。
final修饰成员变量

  • 类变量:当类初始化时,系统会为类变量分配内存,并赋默认值。
  • 实例变量:当创建对象时,系统会为该对象的实例属性分配内存,并赋默认值。

final修饰局部变量

  • 可以在定义时指定默认值,则后面代码中不能再对改变量赋值。
  • 如果在定义时没有指定默认值,则可以在后面代码中对final变量赋初始值,但是只能一次,不能重复赋值。

final修饰类变量,实例变量能指定初始值的地方如下:

  • 类变量:静态初始化块或声明该属性时指定初始值。
  • 实例变量:非静态初始化块,声明该属性时或构造方法种指定初始值。

注意:实例属性不能在静态初始化块种指定初始值,因为静态初始化块是静态成员,不可访问实例属性——非静态成员;类属性不能在普通初始化块种指定初始值,因为类属性在类初始化阶段已经被初始化了,普通初始化不能对其重新赋值。

总结:

  1. 修饰类:final修饰的类不能被继承。

  2. 修饰成员变量:可以直接初始化,也可以在构造器中初始化,除了以上两种情况不能在其他任何地方再次赋值,只可赋值一次。

  3. 修饰局部变量:只能初始化一次。

  4. 修饰方法:被final修饰的方法,不能在子类中重写,但是可以在子类中使用。

发布了29 篇原创文章 · 获赞 353 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lolly1023/article/details/105690101