Java(六) final用法实例讲解

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【完整课程列表】 资源汇总下载地址:https://download.csdn.net/download/qq_27595745/55418618 Java SE编程入门教程 collection与collections(共7页).pptx Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java SE编程入门教程 java封装继承多态(共56页).pptx Java SE编程入门教程 java集合(共38页).pptx Java SE编程入门教程 java接口(共21页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx Java SE编程入门教程 java线程(共61页).pptx Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx java正则表达式例子大全 共10页.doc JAVA正则表达式实例教程 共17页.docx JAVA正则表达式实例教程 共17页.pdf 递归算法.docx 堆和栈.wps
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2章:简单Java程序】_简单Java程序笔记.pdf 010301_【第3章:Java基础程序设计】_Java数据类型笔记.pdf 010302_【第3章:Java基础程序设计】_运算符、表达式与语句笔记.pdf 010303_【第3章:Java基础程序设计】_判断与循环语句笔记.pdf 010401_【第4章:数组与方法】_数组的定义及使用笔记.pdf 010402_【第4章:数组与方法】_方法的声明及使用笔记.pdf 010403_【第4章:数组与方法】_数组的引用传递笔记.pdf 010404_【第4章:数组与方法】_Java新特性对数组的支持笔记.pdf 020501_【第5章:面向对象基础】_面向对象、类与对象的定义笔记.pdf 020502_【第5章:面向对象基础】_类与对象的进一步研究笔记.pdf 020503_【第5章:面向对象基础】_封装性笔记.pdf 020504_【第5章:面向对象基础】_构造方法与匿名对象笔记.pdf 020505_〖第5章:面向对象基础〗_实例讲解—类设计分析(学生类)笔记.pdf 020506_【第5章:面向对象基础】_String类笔记.pdf 020507_【第5章:面向对象基础】_String类的常用方法.pdf 020508_【第5章:面向对象基础】_引用传递及其应用笔记.pdf 020509_【第5章:面向对象基础】_this关键字笔记.pdf 020510_【第5章:面向对象基础】_static关键字笔记.pdf 020511_【第5章:面向对象基础】_理解main方法笔记.pdf 020512_【第5章:面向对象基础】_代码块笔记.pdf 020513_【第5章:面向对象基础】_构造方法私有化笔记.pdf 020514_【第5章:面向对象基础】_对象数组笔记.pdf 020515_【第5章:面向对象基础】_内部类笔记.pdf 020516_〖第5章:面向对象基础〗_实例讲解—系统登陆笔记.pdf 020517_〖第5章:面向对象基础〗_实例讲解—单向链表(1)笔记.pdf 020518_〖第5章:面向对象基础〗_实例讲解—单向链表(2)笔记.pdf 020601_【第6章:面向对象(高级)】_继承的基本实现笔记.pdf 020602_【第6章:面向对象(高级)】_继承的进一步研究笔记.pdf 020603_〖第6章:面向对象(高级)〗_范例:继承的应用笔记.pdf 020604_【第6章:面向对象(高级)】_final关键字笔记.pdf 020605_【第6章:面向对象(高级)】_抽象类的基本概念笔记.pdf 020606_【第6章:面向对象(高级)】_接口的基本概念笔记.pdf 020607_【第6章:面向对象(高级)】_对象的多态性笔记.pdf 020608_【第6章:面向对象(高级)】_instanceof关键字笔记.pdf 020609_【第6章:面向对象(高级)】_抽象类与接口的应用笔记.pdf 020610_〖第6章:面向对象(高级)〗_实例分析:宠物商店笔记.pdf 020611_【第6章:面向对象(高级)】_Object类笔记.pdf 020612_【第6章:面向对象(高级)】_包装类笔记.pdf 020613_【第6章:面向对象(高级)】_匿名内部类笔记.pdf 020701_【第7章:异常的基本概念】_异常的基本概念笔记.pdf 020702_【第7章:异常的基本概念】_异常的其他概念笔记.pdf 020801_【第8章:包及访问控制权限】_包的定义及导入笔记.pdf 020802_【第8章:包及访问控制权限】_访问控制权限及命名规范笔记.pdf 030901_【第9章:多线程】_认识多线程笔记.pdf 030902_【第9章:多线程】_线程常用操作方法笔记.pdf 030903_〖第9章:多线程〗_线程操作范例笔记.pdf 030904_【第9章:多线程】_同步与死锁笔记.pdf 030905_【第9章:多线程】_线程操作案例——生产者和消费者笔记.pdf 030906_【第9章:多线程】_线程生命周期笔记.pdf 031001_【第10章:泛型】_泛型入门笔记.pdf 031002_【第10章:泛型】_通配符笔记.pdf 031003_【第10章:泛型】_泛型的其他应用笔记.pdf 031004_〖第10章:泛型〗_实例讲解—泛型操作范例笔记.pdf 031101_【第11章:Java常用类库】_StringBuffer笔记.pdf 031102_【第11章:Java常用类库】_Runtime类笔记.pdf 031103_【第11章:Java常用类库】_国际化程序笔记.pdf 031104_【第11章:Java常用类库】_System类笔记.pdf 031105_【第11章:Java常用类库】_日期操作类(Date、Calendar)笔记.pdf 031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf 031109_【第11章:Java常用类库】_NumberFormat笔记.pdf 031110_【第11章:Java常用类库】_大数操作(BigIntger、BigDecimal)笔记.pdf 031111_【第11章:Java常用类库】_对象克隆技术笔记.pdf 031112_【第11章:Java常用类库】_Arrays笔记.pdf 031113_【第11章:Java常用类库】_比较器(Comparable、Comparator)笔记.pdf 031114_【第11章:Java常用类库】_观察者设计模式笔记.pdf 031115_【第11章:Java常用类库】_正则表达式笔记.pdf 031116_【第11章:Java常用类库】_定时调度笔记.pdf 031201_【第12章:JAVA IO】_File类笔记.pdf 031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203_【第12章:JAVA IO】_字节流与字符流笔记.pdf 031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf 031205_【第12章:JAVA IO】_内存操作流笔记.pdf 031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第12章:JAVA IO〗_IO操作实例笔记.pdf 031211_【第12章:JAVA IO】_Scanner笔记.pdf 031212_【第12章:JAVA IO】_数据操作流笔记.pdf 031213_【第12章:JAVA IO】_合并流笔记.pdf 031214_【第12章:JAVA IO】_压缩流笔记.pdf 031215_【第12章:JAVA IO】_回退流笔记.pdf 031216_【第12章:JAVA IO】_字符编码笔记.pdf 031217_【第12章:JAVA IO】_对象序列化笔记.pdf 031218_〖第12章:JAVA IO〗_实例操作—单人信息管理程序笔记.pdf 031219_〖第12章:JAVA IO〗_实例操作:投票程序笔记.pdf 031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf 031305_【第13章:Java类集】_排序及重复元素说明笔记.pdf 031306_【第13章:Java类集】_SortedSet接口笔记.pdf 031307_【第13章:Java类集】_Iterator接口笔记.pdf 031308_【第13章:Java类集】_ListIterator接口笔记.pdf 031309_【第13章:Java类集】_foreach及Enumeration接口笔记.pdf 031310_【第13章:Java类集】_Map接口笔记.pdf 031311_【第13章:Java类集】_Map接口使用的注意事项笔记.pdf 031312_【第13章:Java类集】_IdentityHashMap类笔记.pdf 031313_【第13章:Java类集】_SortedMap类笔记.pdf 031314_【第13章:Java类集】_集合工具类:Collections笔记.pdf 031315_【第13章:Java类集】_Stack类笔记.pdf 031316_【第13章:Java类集】_属性类:Properties笔记.pdf 031317_〖第13章:Java类集〗_范例讲解:一对多关系笔记.pdf 031318_〖第13章:Java类集〗_范例讲解:多对多关系笔记.pdf 031401_【第14章:枚举】_枚举的作用笔记.pdf 031402_【第14章:枚举】_Enum笔记.pdf 031403_【第14章:枚举】_类集对Enum的支持笔记.pdf 031404_【第14章:枚举】_枚举的其他应用笔记.pdf 031501_【第15章:Java反射机制】_认识Class类笔记.pdf 031502_【第15章:Java反射机制】_Class类的使用笔记.pdf 031503_【第15章:Java反射机制】_反射应用——取得类的结构笔记.pdf 031504_【第15章:Java反射机制】_Java反射机制的深入研究笔记.pdf 031505_【第15章:Java反射机制】_动态代理笔记.pdf 031506_【第15章:Java反射机制】_工厂设计模式笔记.pdf 031601_【第16章:Annotation】_系统内建Annotation笔记.pdf 031602_【第16章:Annotation】_自定义Annotation笔记.pdf 031603_【第16章:Annotation】_反射与Annotation笔记.pdf 031604_【第16章:Annotation】_深入Annotation笔记.pdf 031701_【第17章:Java数据库编程】_JDBC概述笔记.pdf 031702_【第17章:Java数据库编程】_MySQL数据库笔记.pdf 031703_【第17章:Java数据库编程】_SQL语法基础笔记.pdf 031704_【第17章:Java数据库编程】_JDBC操作步骤及数据库连接操作笔记.pdf 031705_【第17章:Java数据库编程】_执行数据库更新操作笔记.pdf 031706_【第17章:Java数据库编程】_ResultSet接口笔记.pdf 031707_【第17章:Java数据库编程】_PreparedStatement接口笔记.pdf 031708_【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记.pdf 031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_CallableStatement接口笔记.pdf 031711_【第17章:Java数据库编程】_JDBC 2.0操作笔记.pdf 031712_【第17章:Java数据库编程】_事务处理笔记.pdf 031713_【第17章:Java数据库编程】_使用元数据分析数据库笔记.pdf 031714_【第17章:Java数据库编程】_使用JDBC连接Oracle笔记.pdf 031801_【第18章:图形界面】_AWT、Swing简介笔记.pdf 031802_【第18章:图形界面】_基本容器:JFrame笔记.pdf 031803_【第18章:图形界面】_标签组件:JLabel笔记.pdf 031804_【第18章:图形界面】_按钮组件:JButton笔记.pdf 031805_【第18章:图形界面】_布局管理器笔记.pdf 031806_【第18章:图形界面】_其他容器笔记.pdf 031807_【第18章:图形界面】_不弹起的按钮组件:JToggleButton笔记.pdf 031808_【第18章:图形界面】_文本组件:JTextComponent笔记.pdf 031809_【第18章:图形界面】_事件处理笔记.pdf 031810_【第18章:图形界面】_单选钮:JRadioButton笔记.pdf 031811_【第18章:图形界面】_复选框:JCheckBox笔记.pdf 031812_【第18章:图形界面】_列表框:JList笔记.pdf 031812_【第18章:图形界面】_下拉列表框:JComboBox笔记.pdf 031813_【第18章:图形界面】_菜单组件笔记.pdf 031814_【第18章:图形界面】_文件选择框笔记.pdf 031815_【第18章:图形界面】_表格笔记.pdf 031901_【第19章:Java网络编程】_IP(Internet Protocol)与InetAddress笔记.pdf 031902_【第19章:Java网络编程】_URL与URLConnection笔记.pdf 031903_【第19章:Java网络编程】_URLEncoder与URLDecoder笔记.pdf 031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络编程】_UDP程序设计笔记.pdf 032001_【第20章:Java新IO】_缓冲区与Buffer笔记.pdf 032002_【第20章:Java新IO】_通道(Channel)笔记.pdf 032003_【第20章:Java新IO】_文件锁笔记.pdf 032004_【第20章:Java新IO】_字符集笔记.pdf 032005_【第20章:Java新IO】_Selector笔记.pdf 042101_【课程讲解】_附录:Eclipse开发工具笔记.pdf 050101_〖开发实例〗_Java开发实例讲解(人员管理)笔记.pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值