美文网首页
Java final修饰知识点

Java final修饰知识点

作者: 鹿白_tz | 来源:发表于2018-11-26 19:10 被阅读0次

final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。

final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

  1. final修饰类:

final修饰类即表示此类已经是“最后的、最终的”含义。因此,用final修饰的类不能被继承,即不能拥有自己的子类。

如果视图对一个已经用final修饰的类进行继承,在编译期间或发生错误。

  1. final修饰方法:

final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写(可以重载多个final修饰的方法)。

此处需要注意的一点是:因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,

将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是

在子类中重新定义了新的方法。

  1. final 修饰变量:

     final修饰的变量表示此变量是“最后的、最终的”含义。一旦定义了final变量并在首次为其显示初始化后,final修饰的变量值不可被改变。
    

这里需要注意以下几个问题:

(1) final修饰的变量,无论是类属性、对象属性、形参还是局部变量,这些变量都是需要进行显示初始化(即为其显示指定初始值)。

对于final修饰的形参,由于是实参传递过来的,很好理解。

对于final修饰的局部变量,与未用final修饰的变量一样,都是需要显示初始化。即局部变量都是需要显示初始化的。

对于一般的类属性和对象属性,由类和对象的初始化过程中可以看出,首先都进行了默认初始化。然后对有显示赋值的变量才再进行显示初始化。

但对final修饰的类属性和对象属性而言,如果不显示初始化,其默认将是进行默认初始化后的值,这与final本身出发点矛盾,因此,Java语法规定:
(2)final修饰的类属性和变量属性必须要进行显示初始化赋值。

(3)无论对于基本数据类型还是引用数据类型,final修饰的变量都是首次显示初始化后值都不能修改。对于基本数据类型,很好理解。对于引用数据类型,引用变量指向的是实际的对象,但其存储的是所指向对象的地址,因此,其值不能修改并不意味着其所指向的对象不能修改。

  1. final修饰变量后导致的“宏替换” "宏变量"问题

Java 中宏变量/宏替换指的是在java代码中在编译期某些变量能够直接被其本身的值所替换,编译到.class文件中。因此,编译后的.class文件中已经不存在此变了。

相关文章

  • Java中的final修饰符

    Java中的final修饰符 Java中final修饰符既可以修饰变量、方法,也可以修饰类。用final修饰的变量...

  • Java_android 知识点图

    不定期更新Java和Android中知识点图 面向对象 包装类 final修饰符知识点 Java集合框架 Java...

  • 备战2019秋招之必会javase面试题(二)

    java重要知识点集合(基础) 关于 final 关键字的一些总结 修饰类当用final修饰一个类时,表明这个类不...

  • final、abstract以及接口

    final关键字 final 关键字可以用来修饰类,属性和方法。 final修饰类 Java 中 final 修饰...

  • No.6final修饰符详解

    final作为java中的非访问修饰符可用于修饰类,接口,变量,方法; 被final修饰的类: final可以修饰...

  • java - final 关键字

    java - final 关键字 java - final 关键字 在 java 中,final 关键字可以修饰类...

  • Java final修饰知识点

    final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。 final可以用来修饰变量(包...

  • final 在 java 中有什么作用

    final 在 Java 中有什么作用? 1、final修饰类:表示该类不能被继承 使用final修饰类的目的简单...

  • java-final关键字修饰变量

    在java中,final关键字可以对类、方法以及变量进行修饰,这里对final修饰变量进行一些探讨。final修饰...

  • 2017-12-30

    JAVA学习日记(5) final关键字,一些注意事项 final 修饰变量-无法被修改 final 修饰方法-不...

网友评论

      本文标题:Java final修饰知识点

      本文链接:https://www.haomeiwen.com/subject/lnhiqqtx.html