浅谈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)在静态代码块里进行初始化

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 465评论 0 0
  • Java关键字final 在设计程序时,出于效率或者设计的原因,有时候希望某些数据是不可改变的。这时候可以使用fi...
    狮_子歌歌阅读 784评论 1 4
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,720评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,823评论 18 399
  • 無意間在今天晚上看到了駭客任務,重新了解一次屬於它的世界觀,雖然有很多解釋,都很有道理 但節錄其中最喜歡的幾段話"...
    小魯阅读 192评论 0 0