final关键字的作用

1.被final修饰的类不能被继承

报错信息:cannot inherit from final 'com.dajia.test.Animal'

2.被final修饰的方法不能被重写

报错信息:'eat()' cannot override 'eat()' in 'com.dajia.test.Animal'; overridden method is final

3.被final修饰的变量不能被改变

变量的引用不能改变?变量引用所指向的内容不能改变?

举例:

 1 public class FinalTest {
 2     private String str;
 3
 4     public FinalTest(String str){
 5         this.str = str;
 6     }
 7
 8     public String getStr() {
 9         return str;
10     }
11
12     public void setStr(String str) {
13         this.str = str;
14     }
15 }
16
17 //测试
18 public class TestController {
19
20     public static void main(String[] args) {
21         final FinalTest finalTest = new FinalTest("111");
22         finalTest.setStr("222");
23         System.out.println(finalTest.getStr());
24     }
25
26 }

结果:

222

说明final修饰的变量所指向的内容可以被修改

 1 public class TestController {
 2
 3     public static void main(String[] args) {
 4         final FinalTest finalTest = new FinalTest("111");
 5         /*finalTest.setStr("222");*/
 6         final FinalTest finalTest1 = new FinalTest("222");
 7         finalTest = finalTest1;  
 8         System.out.println(finalTest.getStr());
 9     }
10
11 }

第六行编译报错:

报错信息:cannot assign a value to final variable 'finalTest'

结论:final修饰的变量的引用不能被改变,变量引用所指向的内容可以被改变。

转载于:https://www.cnblogs.com/zfyang2429/p/10304977.html

final关键字的用法相关推荐

  1. java final char_java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

  2. 方法对象java final关键字的用法

    之前一直在查找方法对象之类的问题,今天正好有机会和大家讨论一下. 1.用final关键字设置常数 很多程序设计语言都有自己的方法告知编译器某个数据是"常数".常数重要应用于下述两个 ...

  3. java final定义_Java中final关键字的用法

    final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中 ...

  4. 【Java基本功】一文读懂final关键字的用法

    本文主要介绍了final关键字的基本使用方法及原理 final关键字可以修饰类.方法和引用. 修饰类,该类不能被继承.并且这个类的对象在堆中分配内存后地址不可变. 修饰方法,方法不能被子类重写. 修饰 ...

  5. 【Java基本功】一文读懂final关键字的用法 1

    本文主要介绍了final关键字的基本使用方法及原理 final关键字可以修饰类.方法和引用. 修饰类,该类不能被继承.并且这个类的对象在堆中分配内存后地址不可变. 修饰方法,方法不能被子类重写. 修饰 ...

  6. java抽象类与final关键字的用法

    抽象类:使用abstract关键字定义的类就是抽象类  很多具有相同特征和行为的  对象  可以抽象成一个     类  很多具有相同 特征和行为的  类    可以抽象成一个      抽象类 抽象 ...

  7. java中final double_举例讲解Java中final关键字的用法

    1. final variable final variable 就是一个常量,一旦被初始化就不可以被改变. class Test1 { final double PI = 3.14; //常量的名称 ...

  8. java中final关键字的用法

    final:adj. 最终的,不可改变的 我们就取其字面意思"不可改变的". final可以修饰类.方法.变量.那么分别是什么作用呢? (1)修饰类:表示类不可被继承 (2)修饰方 ...

  9. 深入解析final关键字的用法

    夫陶公清风千古,余又何人,敢称庶几 个人博客地址:http://blog.breez.work 文章目录 介绍 解析 final属性 final方法 final参数 final类 介绍 final用于 ...

  10. Android源码中final关键字的用法及final,finally,finalize的区别

    Android开发的学习流程 final,finally,finalize的区别 Android的发展越来越快,Android开发人员越来越多,当两种情况碰撞,在诸多开发者中跟紧Android步伐脱颖 ...

最新文章

  1. Leetcode: 112. Path Sum
  2. 获得插入行身份的最佳方法?
  3. FastJson解析对象及对象数组--项目经验
  4. js返回上一页并刷新代码整理
  5. 深入理解Spark 2.1 Core (二):DAG调度器的原理与源码分析
  6. 你有把依赖注入玩坏?
  7. OpenCV中直方图的计算和绘制
  8. jQuery全局Ajax事件处理器
  9. 一步一步写算法(之哈夫曼树 上)
  10. ajaxpro定时刷新页面
  11. 通过WDS功能扩大无线网范围
  12. c语言写乘法表代码解读,C语言输出九九乘法表代码及解析
  13. Android开发案例 点击按钮出现 简易的消息提示框
  14. 内存映射文件原理(转载)
  15. C语言 生成随机数 分析给定范围的随机数生成公式
  16. 百度一下网页简单html源码
  17. openlayers4加载百度地图、百度影像图、谷歌地图、谷歌影像图
  18. 2023年全国最新二级建造师精选真题及答案55
  19. 51单片机 AT24C02 PROTEUS 读写程序 源码
  20. WIFI-TTL透传模块

热门文章

  1. k均值的损失函数_机器学习:手撕 cross-entropy 损失函数
  2. 人脸对齐(五)--ESR算法
  3. 图像局部特征(九)--斑点检测LOG算子
  4. PhysioToolkit 软件目录
  5. 搜索引擎优化的用乐云seo_搜索引擎优化SEO
  6. flutter初体验之基础控件知识
  7. JVM飙高排查脚本-结构分析
  8. centos 6.2   为mysql5.6.10安装 HandlerSocket插件
  9. onfling滑动界面进行Activity切换
  10. Sql Server2005安装图解