java讲义(七)final修饰符

原创 2016年08月30日 15:15:41

1.1 final成员变量

final关键字可用于修饰类,变量和方法,用于表示它修饰的类,方法和变量不可改变。final修饰变量时,表示该变量不可被改变。final既可以修饰成员变量(类变量和实例变量),也可以修饰局部变量,形参。有的书上介绍说final修饰的变量不可被赋值,这种说法是错误的,严格的说法是,final修饰的变量不可改变,一旦获取初始值,该final变量的值就不能被重新赋值。

因此java语法规定:final修饰的成员变量必须有程序员显示地指定初始值,系统不会对final成员进行隐式的赋值。

归纳起来,final修饰的类变量,实例变量能指定初始化值的地方如下:、

1.类变量:必须在静态初始化块中指定初始值或声明该类变量时指定初始值,而且只能在这2个地方其中之一指定。

2.实例变量:必须在非静态初始化块,声明该实例变量或构造器中指定初始值,而且只能在这3个地方的其中之一指定。


1.2 final局部变量

 系统不会对局部变量进行初始化,局部变量只能有程序员显式初始化,因此使用final修饰局部变量既可以定义时指定初始值,也可以不指定初始值。如果final修饰的局部变量在定义时没有指定默认值,则可以在后面代码中对该final变量赋初始值,但只能一次,不能重复赋值


1.3 final修饰基本类型变量与引用类型变量的区别

当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因为基本类型变量不能被改变,但是对于引用类型变量而言,它保存的仅仅是一个引用,final只保证引用类型变量所引用的地址不改变,即引用同一个对象,但这个对象完全可以发送改变。


1.4 final变量 可执行的““宏替换”

 对于一个final变量而言,不管是类变量,实例变量,局部变量,只要该变量满足三个条件,这个final变量就不再是一个变量,而相当于一个直接量

1.使用final修饰符修饰

2.在定义该final变量时指定了初始值

3.该初始值可以在编译时就被确定下来


1.5 final方法

 final修饰的方法不可重写 可以重载,如果出于某种原因,不希望子类重写父类的方法,就可以使用final来修饰







版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA基础再回首(七)——final关键字、抽象类abstract、接口interface、权限修饰符、导包

JAVA基础再回首(七)——final关键字、抽象类abstract、接口interface、权限修饰符、导包 没有到不了的明天。 嬉皮笑脸面对人生的难。 相信自己,不然你什么都做不了...
  • m366917
  • m366917
  • 2016年08月03日 21:04
  • 1696

Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式

继承: /* 将学生和工人的共性描述提取出来,单独进行描述, 只要让学生和工人与单独描述的这个类有关系,就可以了。 继承: 1,提高了代码的复用性。 2,让类与类之间产生了关系。有了这个关系,...

JAVA基础-栈与堆,static、final修饰符

Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out).        Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、a...

java修饰符final

final修饰符 1.final修饰变量 final修饰的变量指向是不可变的,比如string类型的数据,初始化就不可以改变了 例如: public class FinalTest{ publi...
  • ksj_j
  • ksj_j
  • 2017年01月05日 20:45
  • 487

Java final修饰符使用总结

总:final修饰符可以修饰变量、方法、类。 一:final修饰的成员变量。 final修饰的成员变量被赋初始值后,就不可以再次被赋值。 java规定final修饰的成员变量必须显示初始化...

JAVA_SE基础——42.final修饰符

高手勿喷~ final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特征: 1.final修饰的类不能被继承。实例1 2.fi...

Java final 修饰符知识点总结

final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。 final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。 ...

Java-关于final修饰符

final 修饰 构建对象时必须初始化该域 在后面的操作中,不能够对它再进行修改 引用及引用内容 使用final关键字修饰一个变量时,该引用的对象不能变,但是引用对象的内容是可以变的引用对象不能变...
  • ohcezzz
  • ohcezzz
  • 2017年06月29日 18:39
  • 68

Java-final修饰符

final关键字可以用于修饰类、变量和方法。 final修饰变量时,表示该变量一旦获得了初始值就不可改变。 ## final成员变量 ## final修饰的类Field、实例Field能指定初始值的地...

java中的final修饰符

final关键字可用于修饰类、变量和方法,用于表示它修饰的类、方法和变量不可改变。 final修饰变量时,表示该变量一旦获得了初始值就不可被改变,final既可以修饰成员变量(包括类变量和实例变量)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java讲义(七)final修饰符
举报原因:
原因补充:

(最多只允许输入30个字)