final关键字
来源:互联网 发布:多重网络有什么用 编辑:程序博客网 时间:2024/06/08 11:59
- final可以修饰类、方法、变量。那么分别是什么作用呢?
2. final修饰成员变量时,要在哪里执行初始值?(1)修饰类:表示类不可被继承
(2)修饰方法:表示方法不可被覆盖
(3)修饰变量:表示变量一旦被赋值就不可以更改它的值。java中规定final修饰成员变量必须由程序员显示指定变量的值。
(1)如果final修饰的是类变量,只能在静态初始化块中指定初始值或者声明该类变量时指定初始值。
(2)如果final修饰的是成员变量,可以在非静态初始化块、声明该变量或者构造器中执行初始值。注意,只能在一个地方指定初始值!!
3. final修饰局部变量
4. final修饰方法系统不会为局部变量进行初始化,局部变量必须由程序员显示初始化。因此使用final修饰局部变量时,即可以在定义时指定默认值(后面的代码不能对变量再赋值),也可以不指定默认值,而在后面的代码中对final变量赋初值(仅一次)。
- final修饰基本类型变量和引用类型变量的区别?
final修饰基本类型变量时,不能对基本类型重新赋值。但是,对于引用型变量,它仅仅保存的是一个引用,final保证的是这个引用类型的变量所引用的地址不会变。即一直引用同一个对象,但是这个对象的值可以改变。
class Person(){ private int age; public Person(){} public Person(int age) { this.age = age; }} public class FinalReferenceTest{ main() { final int[] iArr={1,2,3,4}; Arrays.sort(iArr);//合法 iArr[2]=-3;//合法 iArr=null;//非法,对iArr不能重新赋值 final Person p = new Person(25); p.setAge(24);//合法 p=null;//非法 } }
final修饰的方法不能被重写。例如Object类中的getClass()方法就是final方法。不能被重写。父类中private的方法,在子类中不能访问该方法,但是子类中仍然可以定义一个与父类private方法有相同的方法名、相同的形参列表和相同的返回值的方法,不属于方法重写,只是定义了一个新的方法。 final修饰的方法仅仅是不能被重写,并不是不能被重载。下面的代码,是方法重载,仍然没有错误!
public class FinalClass{ public final void test(){} public final void test(int i){}}
0 0
- Final关键字
- final关键字
- final关键字
- final关键字
- final关键字
- final 关键字
- final关键字
- Final 关键字
- Final关键字
- 关键字 final
- final关键字
- final关键字
- final关键字
- 关键字final
- Final 关键字
- final关键字
- final关键字
- final 关键字
- 1.偏头痛杨的Java入门教学系列之认识Java篇
- 【html、css、js注释】规范用法
- 团体程序设计天梯赛L2-020 功夫传人
- 基于MCS-51内核的汇编学习笔记
- 团体程序设计天梯赛L1-039 古风排版
- final关键字
- checkbox的全选和反选,以及两种监听的区别
- 团体程序设计天梯赛L1-031 到底是不是太胖了
- bzoj 4318 OSU!
- pip安装python包报错的一些解决办法【转】
- Android开发之ContentProvider
- bzoj1028: [JSOI2007]麻将
- C语言文件操作中判断文件是否存在的方法
- MySQL数据库