java final可以修饰什么_java final修饰符的用途(转载)

转载地址:http://hbiao68.iteye.com/blog/1909231

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

final不能用于修饰构造方法。

final修饰的成员变量必须由程序员显示地指定初始值,系统不会对final成员进行隐式初始化。

如果final修饰的局部变量在定义时没有指定默认值,则可在后面代码中对该final变量赋初始值,但只能一次,不能重复。

final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。

使用final修饰的引用类型变量不能被重新赋值(引用变量所引用的地址不能被改变),但可以改变引用类型变量引用对象的内容

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

1、使用final修饰符

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

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

满足上面三个条件,这个final变量就不再是一个变量,而是相当于一个直接量。

编译器会把程序中所有用到该变量的地方直接替换成该变量值。

除了那种为final变量赋值时赋直接量的情况外,如果被赋的表达式只是基本的算术表达式或者字符串连接运算,没有访问普通变量,调用方法java编译器同样会将这种final变量当成“宏变量”处理

例如:下面定义了4个final“宏变量”

final int a = 5 + 2;

final double b = 1.2/3;

final String str = "疯狂" + "java";

final String book = "疯狂java讲义" + 99.0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值