浅谈final关键字

欢迎提出意见与指正

final的用法

首先众所周知final修饰的意思是不可变得,最终的。

那么这个不可变得到底是什么呢 ?

不可变得指的是引用,是地址,对象的内容还是可以变得;

也就是说final永远指向某个对象,是一个常量指针,而不是指向常量的指针。

1.修饰类 

被final关键字修饰的类,不能被继承没有子类,而且其内的所有成员方法都会隐式的被final修饰;

注意:不是特别需要 或者为了安全考虑最好不要用final修饰类。

2.修饰方法

一个类中的方法一旦被final关键字修饰,则该方法就不能被子类重写,只能被继承。所以如果父类中的某个方法不想被子类重写,就可以用final关键字修饰。

final修饰的方法的特性:

1.该方法被锁定,防止继承类修改其意义和实现

2.高效

3.修饰变量

1.如果修饰的基本数据类型,一旦被初始化,其数值是不能再被改变的。

2.final 修饰实例变量时(定义在类内,类的属性,但是在类的方法之外,又成为类的成员变量),必须初始化,且不可修改。

3.final修饰局部变量时(方法体内的变量)只能初始化(赋值)一次,也可以不初始化;

4.final修饰方法参数时: 是在调用方法传递参数时初始化的。

5.final修饰引用类型变量时:表示其指向的地址不能变,即不能再让其指向另一个对象,但是该引用指向的对象里的内容是可以改变的

6.当用final修饰类的非静态成员变量时,成员变量的初始化有两种式:

1).在声明时初始化

2) .在声明变量时可以不进行初始化,该变量被称为blank final,即final空白,但是要在这个变量所在的类的所有

的构造方法中对这个变量赋初值。

7.当用final修饰类的静态成员变量时,静态成员变量的初始化方式也有两种

1)在声明时进行初始化

2)在静态代码块里进行初始化

你可能感兴趣的:(浅谈final关键字)