美文网首页Java笔记
Java_final修饰符

Java_final修饰符

作者: Ethan丶Xiao | 来源:发表于2018-04-25 17:39 被阅读0次

final关键字的使用场景

final关键字可以修饰类、方法和变量;

final修饰变量:

表示该变量一旦获得初始值之后便不能被改变;final可以修饰成员变量(包括类变量和实例变量)也可以修饰局部变量,形参;(final修饰的变量不能被重新赋值是错误的,严格的说法是,final修饰的变量不能被改变)

与其他成员变量不同的是,final修饰的成员变量(包括实例属性和类属性) 必须由程序员显示初始化,系统不会对final变量进行隐式初始化; 当如果需要在初始化代码块 构造器中对final变量进行初始化,则不要在初始化之前就访问成员变量的值;

final修饰局部变量

系统不会对final修饰的局部变量进行初始化,必须进行显示的初始化,所以,final修饰的成员变量可以进行一次的赋值,不能进行重复的赋值;

final修饰的形参:

因为在系统调用该方法时,系统根据传入的参数来完成初始化,所以使用final修饰的形参不能被重新赋值;

final修饰的基本类型与引用类型

当final修饰基本类型变量时,不能被重新赋值,所以基本数据类型不能被改变;

但对于引用类型变量来说,保存的仅仅是一个引用,final只能保证这个引用的地址不能被改变,即一直引用同一个对象,但这个对象完全可以改变;

final修饰的方法

final修饰的方法不能被重写,所以不希望子类重写父类的某个方法,可以使用final修饰该方法;

如果使用final修饰一个带有private修饰符的方法,那么依然可以在子类中定义与该方法具有相同方法名 相同返回值 相同形参列表的方法;

final修饰的方法只是不能被重写,但可以被重载;

final修饰的类不能有子类,为了保证某个类不能被继承,可以使用final修饰起来;


final关键字的具体使用

继承关系的最大弊端就是破坏封装;子类可以访问父类的实现细节,而且可以通过方法的覆盖的形式修改实现细节;

final本身的含义为“最终的,不可变的”;可以修饰类、方法、变量;构造器不能使用final修饰;

final修饰的类:表示最终的类,不能再有子类;

final修饰的类需要满足以下条件

1):某类不是专门为继承设计的

2):处于安全考虑,类的实现细节不许变动

3):确信该类不会被拓展

final修饰的方法:称为最终方法,该方法不能被子类覆盖;

什么时候使用final修饰方法

1):在父类中提供的统一算法,不准子类通过方法覆盖来修改,此时使用final修饰;

2):在构造器中调用的方法(初始化方法),此时一般使用final修饰;

(final修饰的方法,子类可以调用,但不可覆盖)

final修饰的变量:最终的变量,表示常量;该变量只能赋值一次,不能再赋值;

final是唯一可以修饰局部变量的修饰符

1):final变量必须显示的指定初始值,因为系统不会为final字段初始化;

2):final变量一旦赋初始值,就不能重新赋值;

3):常量命名规范:单词全部使用大写字母,如果是多个单词组成,单词之间使用下划线隔开;

final修饰的引用类型变量表示的是该对象的引用地址不能改变,但是里面的内容可以改变;


相关文章

  • Java_final修饰符

    final关键字的使用场景 final关键字可以修饰类、方法和变量; final修饰变量: 表示该变量一旦获得初始...

  • vue 常见修饰符

    表单修饰符 事件修饰符 鼠标修饰符 键盘修饰符

  • 谈谈 OC 属性修饰符的本质是什么!

    属性修饰符的本质 assign 修饰符 copy 修饰符 atomic 修饰符 strong 修饰符 weak 修...

  • Kotlin 关键字、修饰符、操作符

    Kotlin中的修饰符关键字分类 类修饰符 成员修饰符 访问权限修饰符 协变逆变修饰符 函数修饰符 属性修饰符 参...

  • Vue修饰符

    事件修饰符 .prevent修饰符 .stop修饰符 .once修饰符 prevent修饰符 用于阻止默认事件行为...

  • 【转】vue修饰符

    目录 表单修饰符 事件修饰符 鼠标按键修饰符 键值修饰符 v-bind修饰符(实在不知道叫啥名字) 一、表单修饰符...

  • Vue这些修饰符帮我节省20%的开发时间

    目录 表单修饰符事件修饰符鼠标按键修饰符键值修饰符v-bind修饰符(实在不知道叫啥名字) 表单修饰符 填写表单,...

  • vue 修饰符

    v-model 修饰符 .lazy.number.trim .sync 修饰符 .native修饰符 事件修饰符 ...

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

网友评论

    本文标题:Java_final修饰符

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