Silly Java-Final 关键字
Final 关键字
- adj. 最终的;最后的;决定性的;不可改变的
1.修饰变量
final variable 意味 【最后的变量,不可改变的变量即常量】 Java中该关键字即代表常量
- 修饰基本类型的变量,在赋初始值之后就不能修改,否则会编译不通过。
- 修饰引用类型变量,在初始化后不能指向另外的对象,否则会编译不通过。
- 在给被final修饰的变量赋值的时候,可以在变量声明时赋值,也可以在构造方法中赋值。
应用场景:用final修饰将变量设置为常量,以后也不打算做修改,一般同static共用。
// 固定的业务场景代码
public static final String SERVICE_SCENE_CODE = "-1";
// 定义存储于Redis中的Key
public static final String TEST_REDIS_KEY = "TEST_REDIS_KEY_FINAL";
2.修饰方法
final method 意味 【最终的方法,不可被改变的方法】Java中该关键字即代表不可被改变的方法,即不能被子类重写,子类不能改变其原有意味。
- 将一个方法定义为final方法,为了防止任何继承自他的子类修改它的含义。
- 类的private方法会隐式地被指定为final方法。
3.修饰类
final class 意味 【最终的类,不可改变的类】Java中该关键字代表最终类,不能再‘繁衍后代了’即不能被继承。
- 用final修饰一个类时,表明这个类不能被继承。
- final类中的成员变量可以根据需要设为final。
- final类中的所有成员方法都会被隐式地指定为final方法。
1 // 被final修饰的class是最终类,不能被继承
2 public final class FinalClass {
3 // 被final修饰的常量可以在声明时赋值
4 private final String str;
5
6 public FinalClass() {
7 str = "1.被final修饰的变量必须初始化,1.声明时赋值2.构造方法中赋值";
8 }
9
10 public void testOut() {
11 System.out.println("3.被final修饰的方法不能被子类重写");
12 }
13
14 public static void main(String[] args) {
15 // 1.final变量即最终变量不能被修改
16 FinalClass finalClass = new FinalClass();
17 System.out.println(finalClass.str);
18 // 被final修饰的引用类型变量,初始化后不能指向另一个对象,否则编译不通过
19 final Object finalObject = new Object();
20 // 试图修改后编译不通过
21 finalObject = new Object();
22 // 2.在变量创建的时候赋值
23 final String finalStr = "2.被final修饰的变量,再赋值后就是最终变量即常量,不能被修改";
24 System.out.println(finalStr);
25 // 3.final修饰的方法是最终方法不能被子类重写修改其意味
26 finalClass.testOut();
27 }
28 }
29 // 5.不能继承被final修饰的最终类,否则会编译不通过
30 class CantExtend extends FinalClass {
31 public String name;
32 // 4.试图重写父类中被final修饰的方法时会导致编译不通过
33 public void testOut() {
34 System.out.println("不能重写父类中final方法");
35 }
36 }
Silly Java-Final 关键字的更多相关文章
- 深入java final关键字
Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...
- 【转载】java final 关键字的几种用法
原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...
- Java——final关键字
前言 Java中的关键字final的含义通常为"这是无法改变的".下面将介绍final用于修饰数据.方法和类的这三种情况. final数据 许多编程语言都有某种方法,来向告诉编译器 ...
- [java]final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...
- [java]final关键字、finally关键字与finalize()方法
final关键字: final关键字通常指的是“无法改变的”,使用“无法改变”这样修饰可能出于两个原因:设计或者效率. final可以修饰变量.方法和类. 一.final变量 一个既是static又是 ...
- java final关键字详解
final是java中保留关键字,可以声明成员变量.类.方法与本地变量,一旦引用final关键字,将不能再改变这个引用,编译器会检查代码,要是想改变该引用,会报错. final变量? 凡是对成员变量或 ...
- 我去,你竟然还不会用 Java final 关键字
写一篇文章容易吗?太不容易了,首先,需要一个安静的环境,这一点就非常不容易.很多小伙伴的办公室都是开放式的,非常吵,况且上班时间写的话,领导就不高兴了:只能抽时间写.其次,环境有了,还要有一颗安静的心 ...
- java final 关键字醍醐灌顶
醍醐灌顶: final 关键字,它可以修饰数据 .方法.类. 可能有些同学傻傻分不清出,这里可以快速弄懂final; final 实例域: 可以将实例域定义为final,构建对象时必须初始化这样的域, ...
- Java final关键字特点
一.特点 1.由于继承,方法可以重写,所以父类的功能就会被子类覆盖2.有时候我们不想子类覆盖父类的功能,这时候我们可以使用final关键字3.final可以修饰:类.变量,方法.4.final修饰类, ...
- java final关键字与static关键字
一 final关键字 1.final修饰类不可以被继承,但是可以继承其他类. 例如: class Yy {} final class Fu extends Yy{} //可以继承Yy类 class ...
随机推荐
- sdut 2159:Ivan comes again!(第一届山东省省赛原题,STL之set使用)
Ivan comes again! Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 The Fairy Ivan gave Say ...
- MySQL单列索引和组合索引的选择效率与explain分析
一.先阐述下单列索引和组合索引的概念: 单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引. 组合索引:即一个索包含多个列. 如果我们的查询where条件只有一个,我们完全可 ...
- jquery合并表格中相同文本的相邻单元格
<!DOCTYPE HTML> <html> <head> <title>Example</title> <meta char ...
- 剑指 offer set 20 打印出和为 s 的连续正序序列
题目 100 可以由 9~16, 或者 18 ~ 22 组成 思路 1. 与 Leetcode Container With Most Water 有些类似, 依然是平移题目. 但这道更加复杂 2. ...
- 中文转换成Unicode编码 和 Unicode编码转换为中文
前几天,遇到一个问题,就是在浏览器地址栏传递中文时,出现乱码,考虑了一下,解决方式有很多,我还是采用了转换编码的方式,将中文转换为Unicode编码,然后再解码成中文,以下是实现的过程,非常简单! p ...
- 如何改变placeholder的样式
input::-webkit-input-placeholder { color: #B2B2B2; } input:-moz-placeholder { color: #B2B2B2; } inpu ...
- IOS7开发~新UI学起(二)
本文转载至 http://blog.csdn.net/lizhongfu2013/article/details/9133281 1.UINavigationBar: NSDictionary* at ...
- poj_2823 线段树
题目大意 给定一行数,共N个.有一个长度为K的窗口从左向右滑动,窗口中始终有K个数字,窗口每次滑动一个数字.求各个时刻窗口中的最大值和最小值. 题目分析 直接搜索,复杂度为O(n^2).本题可以看做是 ...
- [Wc2007]剪刀石头布[补集转化+拆边]
2597: [Wc2007]剪刀石头布 Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1157 Solved: ...
- 【BZOJ3585/3339】mex 莫队算法+分块
[BZOJ3585]mex Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. ...