美文网首页
浅谈final关键字

浅谈final关键字

作者: 两袖清风的我 | 来源:发表于2018-01-20 11:23 被阅读0次

    欢迎提出意见与指正

    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关键字

          本文链接:https://www.haomeiwen.com/subject/mqzzoxtx.html