final关键字那点事
来源:互联网 发布:eq一卡通网络连接失败 编辑:程序博客网 时间:2024/06/07 02:18
java中的final关键字,字面意思是最终,那么在java世界中,加了 final 有什么用呢?
1、让我们看看在普通外部类中的运用
public final class Baby {}final关键字加在类的前面,类:Baby将不能被继承
2、也可以运用在普通内部类前面
public class Baby {final class Inter {}}普通内部类Inter前面有final, 即 Inter 不能被继承
3、静态内部类也可以用final哦
public class Baby {final static class Inter {}}静态内部类Inter,将不能被extends。 (即:A extends Baby.Inter, 这样是不允许的哦!!!)
4、再来看看用在实例变量上
public class Baby { final int walkSpeed = 10;}
a、实例变量 walkSpeed定义时就初始化,而且不能再次赋值新的值
b、也可以让final的实例变量不直接初始化,但是必须在生成实例对象时,保证final实例变量得到初始化,也就是说,必须在普通代码块、或者构造方法中保证其初始化。
5、静态变量上的使用
public class Baby { final static int temp = 100;}同实例变量一样,类变量也可以加final,也是定义时,必须初始化,并且不可再赋新值
6、抽象类可以加final嘛?
public final abstract class Baby { //这里是错误}答案:绝对不可以,抽象类设计目的就是为了供其它类继承用的,你加个final,不让该类可以被继承,那得多矛盾
7、接口可以加final吗?
public final interface Baby { //这里是错误的}答案:绝对不可以,接口是抽象类的升级版,更是供其它类继承用的,你加个final,这不是打脸吗?
8、内部抽象类可以加final吗?
public class Baby {public final abstract class Inter { //这里的final是错误的哦}}答案:绝对不可以,抽象类那就绝对不行
9、那内部接口可以加final吗?
public class Baby {public final interface Temp { //这里是错误的哦}}
答案:绝对不可以,接口必须不可以
10、枚举类型可以加final吗?
public final enum Baby { //这里是错误的}答案:不可以,这个跟enum封装有关系,看其他人的解释,已经是个final了,再加final,就多余了……
11、变态一点,构造方法可以加final嘛?
public class Baby { final Baby() { //这里是错误的哦super();}}答:必须不可以啊,亲啊亲啊
12、让我们看看实例方法吧,嘿嘿
public class Baby {Baby() {super();}final void test() {System.out.println("我是实例方法,哈哈");}}答案:实例方法(也称对象方法)必须可以加final,加了final的方法不允许重写,即被继承后,不可以重写该方法,呵呵,老子让让你用我这个方法,你不愿意也不行。哈哈
13、再来看看静态方法,嘿嘿
public class Baby {Baby() {super();}final static void walk() {System.out.println("我是静态方法,哈哈");}}
答案:静态方法也可以加final,
14、方法(构造方法、实例方法、静态方法)参数列表能加final吗?
答:必须是可以的啊,一直没说到局部变量,罪过罪过,局部变量必须可以加final,加了final的局部变量,同样是也只能初始化一次,一旦初始化,不能再修改其值,无论是基本数据类型,还是引用数据类型,得到的值(常量、内存地址【引用】),都不再可以更改啦。
public class JubuTest {String name;public JubuTest(final String temp) {name = temp;}void test(final double d) {final int a = 5;}static void going(final int speed) {final float five = 5.0f;}{final int w = 100;}}我这个例子,类名、变量名称很烂,大家不要学这个哦,变量名称一定要有意义哦…………
0 0
- final关键字那点事
- 关于 "static" 关键字的那点事
- 面试那点事
- 公司那点事
- 编程那点事!!
- 公务员那点事
- 毕业那点事
- JVM 那点事
- C++那点事
- 【粗心】那点事
- 【春运】那点事
- 内存那点事
- 程序员那点事
- Ext那点事
- Ext那点事
- 学习那点事
- 数组那点事
- 上班那点事
- iOS/OS X内存管理:借助工具解决内存问题
- Linux ALSA声卡驱动之二:声卡的创建
- 内核模式下的注册表操作
- 二维码扫描AVFoundation
- iOS--- Autolayout 基础
- final关键字那点事
- PAM模板
- 内核模式下的文件操作
- linux环境下安装mysql
- Linux ALSA声卡驱动之三:PCM设备的创建
- 数据库基本知识
- leetcode176---Second Highest Salary
- iOS---开发技巧(系列十五:autolayout自动布局)
- android中的webview进度条