java-final关键字
来源:互联网 发布:凤岗淘宝摄影 编辑:程序博客网 时间:2024/06/05 17:52
1.final 可修饰类;变量;方法;
修饰变量的时候,一旦给予了初始值,就不能再改变了; final既可以修饰类变量,也可以修饰实例变量,或者局部变量,形参;
所以,考虑到类在初始化的时候,类变量就被分配内存,如果不在这里给予初始值,就被系统默认分配初始值,那么定义的final变量也就没有意义了,因为在后面也不能改了嘛;
同时,实例变量,在类new对象的时候,会被系统分配内存,并被给予初始值,所以在这里也必须主动指定初始值;
所以,final修饰的成员变量必须显示的指定其初始值! 可以在声明的时候,构造器中,或者初始化代码块中指定其初始值;
2.final修饰基本类型和引用类型的区别:
final int i = 1; 和 final Person p = new Person();
我们说被final定义的变量,不能被二次赋值, 对于基本类型如i = 1;i本身就是代表1这个值,所以不能对其做出改变了;
然而p这个变量代表的是一个地址,new出来的Person的地址,那么 代表的是一个地址,这个地址自然不能被改变了;那么这个地址里存的值,肯定是可以改变的!
3.满足下列三个条件,final变量就不被系统认为是一个变量了,可以宏替换!认为是一个常量
a.使用final修饰符修饰;
b.定义final变量时就指定了初始值;
c.初始值可以在编译的时候就被确定下来;
4.final方法:
final修饰的方法不可以被重写,但是可以被重载;
如果父类有一个private方法,子类本来就无法访问这个方法,所以子类定义一个与该方法相同方法名,相同形参,相同返回值的方法,也不是重写,只是重新定义了一个新方法;
所以父类的这个private方法,用final修饰了,子类还是可以写一个相同的;
5.final类:
final修饰的类,终极类,不可以被继承;
6.不可变类(immutable):
创建该例的实例后,实例变量都是不可变的;
- Java static关键字,final关键字
- java关键字之 final
- Java中的final关键字
- Java的final关键字
- JAVA中的关键字FINAL
- Java中final 关键字
- java final 关键字
- java-final关键字
- Java final关键字分析
- java final关键字
- Java基础: 关键字 final
- java中的final关键字
- java中final关键字
- Java关键字final、static
- Java final关键字解释
- java中关键字:final
- java中final关键字
- java中的final关键字
- 设计模式之原型模式
- GD32F130FXP6学习笔记四:ARM 汇编指令集初识
- Java笔记
- HDU5127 Dogs' Candies(瞎暴力)
- Linux USB札记
- java-final关键字
- Android设计模式-责任链模式
- 高性能高可用的分布式唯一ID服务——mooon-uniq-id
- Vim E568:: duplicate cscope database not added 解决方法
- Sqlite教程
- 读程序 UVA1587 UVALive3214 POJ2160 Box
- 关于json解析的几种方法
- Vijos 1736题:铺地毯
- bzoj 2304: [Apio2011]寻路 (最短路+建图)