美文网首页
No.6final修饰符详解

No.6final修饰符详解

作者: 醒着的码者 | 来源:发表于2016-04-10 22:18 被阅读34次

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

被final修饰的类:

final可以修饰类或者接口,但是没有类能够实现final修饰的类或接口。final修饰的类中所有的方法和变量都被隐式声明为final,

被final修饰的方法:

如果一个类中的方法被final修饰那么,该方法可以在该类中重载,也可以被子类继承。但是不能被子类覆写。

被final修饰的变量:

如果将引用类型(任何类的类型)的变量标记为 final,那么该变量不能指向任何其它对象。但可以改变对象的内容,因为只有引用本身是 final 的。引用存在于栈内存,对象存在于堆内存中,引用指向堆内存中指定对象的地址,只要指向的对象不变引用本身就不会变,这就是为什么对象本身属性可以变,但是对象地址不可变。

final Person p1 = new Person("zhangsan");
final  Person p2 = new Person("lisi");
p1 = p2 ;//"编译时就会报错"

被final修饰的变量,方法,在编译的时候就会识别,在运行时就会有一个确切的内存用于存放(常量池),类似于static,实际上static被隐式声明为final。不同之处是static修饰的变量可以通过类名直接访问。

被final修饰的基本变量如 final int A = 2;被称之为常量,该类变量命名规则就是所有字符大写。该类变量不可以被修改值。(于static区别在于static可以被修改,但是任一一处修改,其他地方的该变量值也随之改变);

final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。
final 修饰的局部变量可以只声明不赋值,然后再进行一次性的赋值。

相关文章

  • No.6final修饰符详解

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

  • const,static,extern详解

    一、�const详解 �如果试图修改由const修饰符修饰所声明的变量,编译器会报错。�const修饰符修饰的指针...

  • Swift open public等修饰符详解

    Swift open public等修饰符详解 swift 中关于open ,public ,internal,f...

  • Vue事件修饰符详解

    Vue事件修饰符详解(转) 整体学习Vue时看到Vue文档中有事件修饰符的描述,但是看了之后并没有理解是什么意思,...

  • iOS block本质详解(二)

    这篇文章主要的讲的是这三个方面。* block捕获对象变量的本质* __weak 修饰符 详解* __block ...

  • 25.Kotlin注解详解

    Kotlin注解详解 注解声明注解是将元数据附加到代码的方法。要声明注解,请将 annotation 修饰符放在类...

  • vue 篇章一

    参考文献: 官网地址Vue事件修饰符详解mvvm子路由路由器起步props 与 打data区别ajaxgithub...

  • IOS 修饰符 详解

    一、readOnly,readWrite readeonly, “只读”只生成getter方法 而没有生成sett...

  • __strong修饰符详解

    __strong 修饰符 __strong 修饰符实 id 类型和对象类型默认的所有权修饰符。也就是说,以下源代...

  • __weak修饰符详解

    仅通过 __strong 是无法解决程序中的重大问题的。所说的重大问题就是引用计数式内存管理中所必然发生的“循环...

网友评论

      本文标题:No.6final修饰符详解

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