Java中final修饰符的理解
记录一下今天复习的final修饰符,其中 final类的成员方法隐式被final修饰部分 仅代表我个人理解
总结如下:
final有三种使用方法:
1、final修饰类 final修饰类表示这个类不能被继承, 这个类的成员变量可以选择性得用final修饰, 类的成员方法在继承角度来说可以理解为默认被final修饰, 因为java之前是可以用final使方法变为内嵌调用,以此来提高方法效率;
2、final修饰方法 final修饰方法表示这个方法被锁定,不能被任何类修改, 当一个方法被private修饰,则会被隐式得指定为final方法,即不能被继承super调用;
3、final修饰变量 final修饰变量分为两种,一种是修饰基本类型,一种是修饰引用类型, 当修饰基础类型的时候,第一次赋值后就不能被更改, 当修饰引用类型的时候,第一次指向后就不能修改其对象引用,即一直引用这一个对象,但是可以修改对象本身;
具体案例:
一、修饰类
当它修饰类的时候,表明此类不允许被其他类继承;
在被final修饰的类里面,所有成员变量都是可以选择性得使用final,但是被final修饰的成员变量必须立即赋值;
但是在被final修饰的类里,所有的成员方法都是会被隐式得加上final;这句话来自《java编程思想》一书,我验证了,但是编译后的class一样是不带final的,对于这句话我是这么理解的:因为Java之前版本是可以使用final使方法变为内嵌调用,以此来提升方法的效率,但是现在Java已经不需要这么写了;
二、修饰方法
当它修饰方法的时候,表示这个方法被锁定,不能被任何类修改;
而且当一个方法被私有化(被private修饰)的时候,则该方法会被隐式得指定为final,即不能在其子类被super调用;
三、修饰变量
final修饰变量分为两种情况,一个是修饰基础类型,一种是修饰引用类型;
当修饰基础类型的时候,第一次赋值后将不能更改变量的值;
当修饰引用类型的时候,第一次指向后就不能修改其对象引用,即一直引用这一个对象,但是可以修改对象本身;
Java中final修饰符的理解相关推荐
- java 中final修饰的变量_java中final修饰符的使用方法
本文为大家分享了java中final修饰符的使用,供大家参考,具体内容如下 1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可 ...
- 关于Java中各种修饰符与访问修饰符的说明
关于Java中各种修饰符与访问修饰符的说明 类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 ...
- java中访问修饰符_Java中的非访问修饰符是什么?
java中访问修饰符 Java非访问修饰符 (Java non access modifiers) We have 7 non-access modifiers in Java. The name o ...
- JAVA中final修饰参数
1. final 修饰在变量上,说明这个变量的值不能修改 final 修饰在方法上,说明这个方法在继承后不能覆盖. final 修饰在类上,说明这个类为终态,不能被继承了. 2.final类型修饰的参 ...
- Java 中的修饰符总结
学习了编写 Java 程序中的修饰符总结,而在编写Java程序时,都会遇到Java中的修饰符总结.所以往下面学习时,应当注意以下几点: 修饰符总结:四个访问控制符:注意:在不写访问控制符的情况下,就是 ...
- Java中权限修饰符
Java中访问修饰符public.private.protect.default范围 同一个类 同一个包 不同包的子类 不同包的非子类 Private √ Default √ √ Protecte ...
- java中访问修饰符_Java中的访问修饰符介绍
java中访问修饰符 什么是访问修饰符? (What are Access Modifiers?) Have you ever wanted to define how people would ac ...
- 有关于java的final修饰符
近期在学习java,今天看到final修饰符的问题,我书上有个很有意思的句子,如果用final修饰符修饰一个可变的对象的话,final修饰符只能让这个引用对象的变量不变,换言之,它指向的对象不变,但对 ...
- 在java中 接口修饰符,Java接口中的修饰符
示例 < Oracle Java样式指南>指出:当修饰符是隐式的时,不应将它们写出来. (有关上下文和指向实际Oracle文档的链接,请参见Oracle Official Code Sta ...
最新文章
- python的编程模式-Python设计模式之状态模式原理与用法详解
- LeetCode 904. 水果成篮(滑动窗口)
- lintcode最长回文子串(Manacher算法)
- 查询各个科目成绩前三的记录
- java base64 转图片不现实_Base64.decodeBase64将base64转图片的问题
- Spring发送基于freemarker模板的邮件
- 还不了解小程序?看这一篇文章就够了
- eclipse debug 多线程
- 拯救期末!大四留学生发“论文机器人”,替你读文献给方向调格式,已被ACL2019收录
- [生存志] 第74节 孔子集结诗经
- C语言 进阶版三子棋小游戏
- MTK支持的DRM简介
- wince 默认输入法_winCE6.0自带中文输入法加载
- BAT再战二手车,哪种模式会胜出?
- Java入门篇——零基础如何学习Java
- 未能加载文件或程序集“System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b1
- sx1268芯片手册第13章翻译
- 免费外链相册十三大平台
- 比较好用的Smartdraw
- java获取项目在tomcat中路径_java获取项目地址或tomcat绝对地址