Java(六) final用法实例讲解

来源:互联网 发布:nginx 页面状态码修改 编辑:程序博客网 时间:2024/06/06 18:12

Final

final关键字的用法:
1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。
2. fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。
3. final关键字修饰一个函数的时候,该函数不能被重写。
4. final关键字修饰一个类的时候,该类不能被继承。

正如以上描述所讲,用途就是为四个,基本变量,引用变量,函数,类,
但是理论归理论,看几个例子
1

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

2
这里写图片描述
3

如果没有final就可以继承
这里写图片描述
这里写图片描述
对比两幅图片发现,当我们一个父类的方法添加final以后,子类便无法继承。
4

这里写图片描述

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

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

 public void showUpgradeDialog(final UpdateBean bean) {} public void showUpgradeDialog(final int bean) {}       

这里需要分两种情况,如果为基本类型,自然是不能修改bean的,也符合上面我们总结的,但是
如果是引用类型的呢?
仔细想想,java中传参类型,无非就两种,1 引用类型 2 值传递,其实本质都是值传递,不过引用是复制的
内存地址,那么bean的对象是不能修改,但是对象里面的属性值还是可以修改的,好比女的有个老公,老公是固定的,老公的职业是可以变化的。
那我们为什么要用final呢?个人理解为函数是入参,防止参数被修改,算是java语法的一个预防程序员的错误。
java又不像c语言,传入参数的改变会更改调用方法的内存。
总结,参数的final仅仅只是为了防止参数再函数内被更改。
这里写图片描述

1 0
原创粉丝点击