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——static修饰符、final修饰符、abstract修饰符、接口

一、static修饰符 static修饰符可以修饰变量、方法或代码块 用static修饰的变量叫静态变量。 静态变量有如下注意事项: 类中的静态变量属于类,而不属于某个特定的对象。类的静态成员可以...
  • taohuaxinmu123
  • taohuaxinmu123
  • 2013年10月08日 21:28
  • 5288

java中的三大修饰符static、final、abstract

一、static 关键字          可以修饰:           1.属性--> 被static关键字修饰的属性叫类变量,是全类共有的,可直接用类名访问。               ...
  • u010442302
  • u010442302
  • 2016年03月02日 22:02
  • 617

java中4种修饰符访问权限的区别及详解全过程,final修饰符 ,static修饰符 ,abstract修饰符

java修饰符
  • zhangweigangweiwu
  • zhangweigangweiwu
  • 2015年07月09日 10:07
  • 825

在Java中,final修饰符要如何使用?

package com.saiermeng; /* final : 最终。作为一个修饰符, 1,可以修饰类,函数,变量。 2,被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。...
  • Dangwenjie
  • Dangwenjie
  • 2016年05月15日 20:51
  • 757

java中接口的概念及使用(补充final修饰符的使用)

接口 接口 初期理解,可以是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示 class 用于定义类 interface 用于定义接口 接口定义时,格式特点: ...
  • u011528448
  • u011528448
  • 2015年01月26日 16:51
  • 796

final修饰符的三种使用场景

final有三种使用场景,分别是修饰变量、方法和类,无论哪种修饰,一旦声明为final类型,你将不能改变这个引用了,编译器会检查代码,如果你试图再次初始化,编译器会报错。下面我来具体说说每一种修饰场景...
  • fuyuwei2015
  • fuyuwei2015
  • 2015年07月14日 17:40
  • 1434

[疯狂Java]面向对象:final修饰符(修饰变量、方法、类)

1. final修饰变量:     1) 当final修饰变量时,其功能类似C++的const,有不可变的意思(类似常量),但是其用法比C++的const灵活地多,功能也更丰富;     2) 用...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年06月26日 16:52
  • 721

java中的修饰符final和static

1.final 修饰类时表明该类不能被继承,自然类中的方法默认是final型的。 2.final 修饰方法时不允许被子类覆盖,也就是可以被继承。一个final类中,一个final方法只能被实现一次。...
  • nishuihanliu
  • nishuihanliu
  • 2016年04月29日 21:30
  • 855

Java中的修饰符说明(public,private,protected,default,final,abstract,static)

public(公共访问权限):这是一个宽松的访问控制级别,如果一个成员(包括成员变量、方法和构造器等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类(注:在该类外部,...
  • yuyibing888
  • yuyibing888
  • 2016年01月20日 17:25
  • 1695

final 修饰符 如何使用?

Final :      1: 修饰整个类:            表示该类不能被继承              (如果认为一个类已经很完美不需要定义子类来继承它)         格式...
  • woshi2512901978
  • woshi2512901978
  • 2013年01月15日 00:02
  • 1880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java讲义(七)final修饰符
举报原因:
原因补充:

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