黑马程序员 java关键字final

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


final是一个修饰符

特点:

(1)可以修饰类,函数,变量。

(2)被final修饰的类不可以被继承。

 

用final修饰类是为了避免被继承,被子类复写方法。

Demo被final修饰,如果被继承,编译出错

如下代码:

 
(3)被final修饰的方法不可以被复写
代码:
 
class Demo
{
	final void show1() //不允许被复写
	{}
	void show2()
	{}
}

class SubDemo extends Demo
{
	void show1(){}
}
 编译结果:

FinalDemo.java:21: 错误: SubDemo中的show1()无法覆盖Demo中的show1()
        void show1(){}
             ^
  被覆盖的方法为final
1 个错误

 

(4)被final修饰的变量是一个常量只能赋值一次,final既可以修饰成员变量,又可以修饰局部变量
代码:
class Demo
{
	final int x = 3;// 成员变量的值终生为3
	void show1() {}
	void show2()
	{
		final int y = 4; // 局部变量的值终生为4
		y = 9;          //这句编译会出错
	}
}
编译结果:
 
FinalDemo.java:20: 错误: 无法为最终变量y分配值
                y = 9;          //这句编译会出错
                ^
1 个错误
 
应用:
当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便于阅读。
而这个值不需要改变,所以加上final修饰。
如: 
public static final double PI = 3.14;  //圆周率  全局常量
final double MY_PI = 3.14;  //当多个单词构成常量名,单词间用下划线连接

 (5)内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值