java之final
我们先看一道面试题:
请问 final 的含义是什么?可以用在哪里?其初始化的方式有哪些?
首先我们回答一下这道题,然后再探究其所以然。
1、final 表示“最终的”、“不可改变的”,意指其修饰类不可以被继承或修饰的属性的值不可改变。
2、final 既可以修饰类,也可以修饰属性。
3、final 变量可以直接初始化值,也可以在构造方法中初始化值,但是二者只可选其一。
好了!现在我们已经知道了答案了,那咱们就来一一验证吧!
1、直接初始化属性值,类不可被继承:
package com.smbea.demo; import org.junit.Test; /**
* final 修饰属性并并直接初始化
* 此类不可被继承
* @author hapday
*/
public final class FinalDemo2 {
final int num = 9; @Test
public void finalTest() {
// this.num = 7; // 这一句之所以注释是因为报 The final field FinalDemo2.num cannot be assigned 的错误
System.out.println(this.num); // 输出结果:9
}
}
2、通过构造器为 final 的变量初始化:
package com.smbea.demo; /**
* final 修饰属性并通过构造器初始化
* @author hapday
*/
public class FinalDemo {
final int num ; public FinalDemo(int num) {
System.out.println("无参构造器");
this.num = num;
System.out.println(this.num);
} public static void main(String[] args) {
new FinalDemo(8);
}
}
我们先看一道面试题:
请问 final 的含义是什么?可以用在哪里?其初始化的方式有哪些?
首先我们回答一下这道题,然后再探究其所以然。
1、final 表示“最终的”、“不可改变的”,意指其修饰类不可以被继承或修饰的属性的值不可改变。
2、final 既可以修饰类,也可以修饰属性。
3、final 变量可以直接初始化值,也可以在构造方法中初始化值,但是二者只可选其一。
好了!现在我们已经知道了答案了,那咱们就来一一验证吧!
1、直接初始化属性值,类不可被继承:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package com.smbea.demo;import org.junit.Test;/** * final 修饰属性并并直接初始化 * 此类不可被继承 * @author hapday */public final class FinalDemo2 { final int num = 9; @Test public void finalTest() {// this.num = 7; // 这一句之所以注释是因为报 The final field FinalDemo2.num cannot be assigned 的错误 System.out.println(this.num); // 输出结果:9 }} |
2、通过构造器为 final 的变量初始化:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package com.smbea.demo;/** * final 修饰属性并通过构造器初始化 * @author hapday */public class FinalDemo { final int num ; public FinalDemo(int num) { System.out.println("无参构造器"); this.num = num; System.out.println(this.num); } public static void main(String[] args) { new FinalDemo(8); }} |
java之final的更多相关文章
- Java关键字final、static
一.final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final ...
- java中final的理解
final修饰变量表示变量初始化后就不能再改变. 一.对于基础类型来说,用final修饰后其值不可以改变. 1. final int a; a = 5; 2.final int a = 5; 二.对于 ...
- 【转】Java关键字final、static使用总结
转自:http://lavasoft.blog.51cto.com/62575/18771/ Java关键字final.static使用总结 一.final 根据程序上下文环境, ...
- java的final用法
转自:http://blog.163.com/maomaoyu_1012/blog/static/19060130520116269329894/ 1. 修饰基础数据成员的final ...
- Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- Java中final的作用
Java中Final可以被用于变量,方法,类.具体来说: 1, Final 变量 修饰主类型时,制定变量为常数,不希望被改变 修饰类类型时,表示变量的句柄不变,不能被指定指向新的变量 修饰参数时,参数 ...
- 转!Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...
- Java关键字final、static使用总结(转)
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- (转)Java关键字final、static使用总结
一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. fin ...
- 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因
声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...
随机推荐
- leetcode132. Palindrome Partitioning II
leetcode132. Palindrome Partitioning II 题意: 给定一个字符串s,分区使分区的每个子字符串都是回文. 返回对于s的回文分割所需的最小削减. 例如,给定s =&q ...
- 装饰者模式:轻松记住IO类的关系与API
开门见山 目录 概述与模型 1.概述 含义:动态地将责任附加到对象上.若要拓展功能,装饰者提供了比继承更有弹性的替代方案. 初衷:需要动态为某一个类拓展.通常我们会使用继承,但是继承的话,会产生很多子 ...
- 01-03-01【Nhibernate (版本3.3.1.4000) 出入江湖】id标签的unsaved-value属性
父表 <class name="Model.Customer, Model" discriminator-value="0"> <!--uns ...
- Spring EL hello world实例
Spring EL与OGNL和JSF EL相似,计算评估或在bean创建时执行.此外,所有的Spring表达式都可以通过XML或注解. 在本教程中,我们将学习如何使用Spring表达式语言(SpEL) ...
- SEAndroid安全机制简要介绍和学习计划
与iOS相比.Android最被人诟病的是其流畅性和安全性. 然而,从4.0開始,Android不遗余力地改善其流畅性. 特别是在即将公布的L版本号中,用ART替换了Dalvik,相信会越来越流畅.至 ...
- jQuery:validate表单验证基本使用
jquery.validate是jquery的一个验证框架,可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法! 这里先从介绍简单的使用方法:jquery.validate.js下载地址 1. ...
- Mysql -- 统计类用法
累加: update push_online a,(select msg_key, push_countfrom push_online)b set a.push_count=b.push_count ...
- 电子书mobi的格式详解
https://wiki.mobileread.com/wiki/MOBI#Format Like PalmDOC, the Mobipocket file format is that of a s ...
- (转载)iPhone开发视频教程 Objective-C部分 (51课时)
感谢好人的无私贡献!来源:http://www.cnblogs.com/aimeng/p/3370012.html 第一.二章 OC基础语法 iPhone开发教程 第一章 OC基础语法 i ...
- EF Power Tools使用介绍
EF Power Tools可以从数据库反向生成实体及映射文件.一般在使用EF,有Database First,Code First以及Model First.常用的是Database ...