java fanal使用实例_Java(六) final用法实例讲解

Final

final关键字的用法:

1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。

2. fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。

3. final关键字修饰一个函数的时候,该函数不能被重写。

4. final关键字修饰一个类的时候,该类不能被继承。

正如以上描述所讲,用途就是为四个,基本变量,引用变量,函数,类,

但是理论归理论,看几个例子

1

final int i =1;

i=2; //这个如果再要修改java编译器会报错的

2

0818b9ca8b590ca3270a3433284dd417.png

3

如果没有final就可以继承

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

对比两幅图片发现,当我们一个父类的方法添加final以后,子类便无法继承。

4

0818b9ca8b590ca3270a3433284dd417.png

通过这里发现验证我们的理论是正确的。

其实更多的时候并不是在这几种情况使用final,有一种情况是当我们在一个函数的参数中使用final,

例如。

public void showUpgradeDialog(final UpdateBean bean) {}

public void showUpgradeDialog(final int bean) {}

这里需要分两种情况,如果为基本类型,自然是不能修改bean的,也符合上面我们总结的,但是

如果是引用类型的呢?

仔细想想,java中传参类型,无非就两种,1 引用类型 2 值传递,其实本质都是值传递,不过引用是复制的

内存地址,那么bean的对象是不能修改,但是对象里面的属性值还是可以修改的,好比女的有个老公,老公是固定的,老公的职业是可以变化的。

那我们为什么要用final呢?个人理解为函数是入参,防止参数被修改,算是java语法的一个预防程序员的错误。

java又不像c语言,传入参数的改变会更改调用方法的内存。

总结,参数的final仅仅只是为了防止参数再函数内被更改。

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值