Java final关键词
final关键词的四种用法
*
* final 关键字:最终的、不可改变的
* 1、可以用来修饰一个类
* 2、可以用来修饰一个方法
* 3、可以用来修饰一个局部变量
* 4、可以用来修饰一个成员变量
*
*
* 1、final 修饰一个类:
* 格式:
* public class final 类名称 {
* // 方法区
* }
* 含义:当前的类不能更改,不能有子类(太监类)
* 不能使用一个 final 修饰的类来当父类,这个类里面的所有方法也就不能进行覆盖重写了。
*
*
* 2、final 修饰一个方法:
* 格式:
* 修饰符 final 返回值类型 方法名称(参数列表) {
* // 方法体
* }
* 含义:该方法所在的类可以被继承(即可以是其他类的父类),
* 但是这个方法不能给覆盖重写,用final修饰后就不可以更改了
* 注意事项:对于类、方法来说,关键词abstract和final不能同时使用,因为会矛盾。
* abstract 修饰的类、方法是一定要给覆盖重写的,而 final 修饰的类是不能更改的(即不能给覆盖重写的)
* 所以关键词abstract和final不能同时使用
*
*
* 3、final 修饰一个局部变量
* 一旦使用 final 修饰的局部变量,那么这个变量将不能进行更改,
* "一次赋值,终生不变"
* 注意事项:
* 对于基本数据类型来说,不可变的是变量当中的数据值
* 对于引用苏剧类型来说,不可变的是变量当中的地址值
*
*
* 4、final 修饰一个成员变量
* 对于成员变量来说,使用了 final 来修饰,那么这个变量同样也是不可以进行更改的,且需要马上赋值,否则无意义
* 假如你用final修饰来一个成员变量,没有赋值,那么该成员变量的值是默认值,且不可以更改,那么定义这个成员变量就是无意义的
* 注意事项:
* (1)成员变量具有默认值,所以用了final修饰后,必须手动赋值,不会再给默认值了。
* (2)对于final的成员变量,要么直接赋值,要么通过构造方法赋值(二者选其一)。
* (3)必须保证类当中所有的构造方法,最终都对final成员变量进行赋值。
*final修饰成员变量

Java final关键词的更多相关文章
- Java final 关键词修饰类、方法、变量
1. final修饰类 被修饰的类不能被继承,也没有子类.假如随意创建这些类的子类,子类可能会错误的修改父类的实现细节.出于安全原因,类的实现细节不允许有任何改动.在创建对象模型的时候,确信这个类不 ...
- java final 关键词
package day9; /** * Created by admin on 2018/11/17. * final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final ...
- java—— finall 关键词
_ *{ margin: 0; padding: 0; } .on2{ margin: 10px 0; cursor: pointer; user-select: none; color: white ...
- 深入java final关键字
Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...
- 【笔试题】Java final keyword
Java 知识测试 Java final keyword Question 1 What is the use of final keyword in Java? A. When a class is ...
- java中的final关键词
参考资料: http://www.cnblogs.com/dolphin0520/p/3736238.html final是个修饰词,可以修饰类.方法.变量. 1. 修饰类 修饰类,就表示这个类不能被 ...
- java继承-final关键词用法
final关键字特点: 1.可以用来修饰变量.方法.类. 2.修饰的变量是一个常量.一旦被赋值就不能被修改(常量一般都和static关键字配合使用) 3.修饰类代表此类不能被继承4.修饰方法代表次方法 ...
- Java final修饰符
final的定义: 在英文层面上,final的意思是"最后的","最终的"意思,在Java中也同样表示出此种含义. final的运用对象: final适用于修饰 ...
- Java final 修饰符知识点总结
final从字面上理解含义为“最后的,最终的”.在Java中也同样表示出此种含义. final可以用来修饰变量(包括类属性.对象属性.局部变量和形参).方法(包括类方法和对象方法)和类. 1. fin ...
随机推荐
- dotnet 设计规范 · 结构体定义
X 不要给结构体默认构造函数 默认的C#编译器也不让开发者定义有默认构造的结构体 X 不要定义易变的属性 易变的属性指的是在调用属性返回值的时候返回的是新的实例,易变的属性会有很多的问题. ✓ 需要确 ...
- dotnet 设计规范 · 数组定义
本文告诉大家数组定义需要知道的规范,本文翻译 docs dotnet ✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段, ...
- python的for循环、下标和切片
for循环的格式 for 临时变量 in 列表或者字符串: 循环满足条件时执行的代码 else: 循环不满足条件时执行的代码 例: name = "abcdef&qu ...
- UVa 1627 - Team them up!——[0-1背包]
Your task is to divide a number of persons into two teams, in such a way, that: everyone belongs to ...
- jQuery 工具类函数-字符串操作函数
调用名为$.trim的工具函数,能删除字符串中左右两边的空格符,但该函数不能删除字符串中间的空格,调用格式为: $.trim (str); 参数str表示需要删除左右两边空格符的字符串. <bo ...
- Loj2604开车旅行
Loj2604开车旅行 我完全没有看出这道题哪里是DP 首先,一个位置向后的最近和第二近我们可以通过set去简单实现 通过维护最大和次大即可 至于高度相同的情况我们可以通过先在set中查询小的来实现 ...
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...
- 【Linux】Mac好用虚拟机 Parallels Desktop、FinalShell-多终端连接工具(支持Windows,macOS,Linux)
一.Mac好用虚拟机 Parallels Desktop 1.下载安装: 2.新建虚拟机: 3.配置管理: 二.FinalShell-多终端连接工具(支持Windows,macOS,Linux) 1. ...
- 彩票历史记录分析工具 -- 通过实例学习wpf开发
前言 虽然本人对彩票不感兴趣,仍然有不少人对此情有独钟.他们花大量时间精力去分析彩票的历史记录,企图发现规律,为下一次投注做指导,希望“赢的“”概率增大.不管研究历史记录是否有意义,我用软件实现了对彩 ...
- 13.python基础试题(二)
借鉴:https://www.cnblogs.com/shengyang17/p/8543712.html https://www.cnblogs.com/you-wei1/p/9693254.htm ...