final关键字

  1. final可以修饰类、属性、方法和局部变量

  2. 如下情况,可以使用final

    • 当不希望类被继承时,可以用final修饰
    • 当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰
    • 当不希望类的某个属性的值被修改,可以使用final修饰
    • 当不希望某个局部变量被修改,可以使用final修饰
  3. final修饰的属性又叫常量,一般用 XX_XX_XX 来命名

  4. final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一:

    • 定义时:如 public final double TAX_RATE = 0.08;
    • 在构造器中
    • 在代码块中
    class AA {
    public final double TAX_RATE = 0.08; //在定义时赋值
    public final double TAX_RATE2;
    public final double TAX_RATE3; public AA() { //在构造器中赋值
    TAX_RATE2 = 1.1;
    } { //在代码块中赋值
    TAX_RATE3 = 8.8;
    }
    }
  5. 如果final修饰的属性是静态的,则初始化的位置只能是

    • 定义时
    • 在静态代码块 不能在构造器中赋值
  6. final类不能被继承,但是可以实例化对象(可以new)

  7. 如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承,即,仍然遵守继承机制

    class DD {
    public final void cal() { }
    }
    class EE extends DD {} //可以在main方法中 new EE().cal();
  8. 一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法

  9. final不能修饰构造方法(即构造器)

  10. final 和 static 往往搭配使用,效率更高,不会导致类加载,底层编译器做了优化处理

    class BBB {
    public static final int num = 10000;
    static{
    System.out.println("BBB类 静态代码块被执行了");
    }
    } public class Final {
    public static void main(String[] args) {
    System.out.println(BBB.num);
    }
    } /*
    运行结果:
    10000
    */
  11. 包装类(Integer,Double,Float,Boolean 等都是final),String也是final类

Java SE final关键字的更多相关文章

  1. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率. 1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4 ...

  2. 聊聊Java的final关键字

    Java的final关键字在日常工作中经常会用到,比如定义常量的时候.如果是C++程序员出身的话,可能会类比C++语言中的define或者const关键字,但其实它们在语义上差距还是挺大的. 在Jav ...

  3. java之final关键字

    final关键字(可以读不可以写.只读) 1.final的变量的值不能够被改变 ①.final的成员变量 ②.final的局部变量(形参) //意思是“实参”一旦传进我的方法里面,就不允许改变 2.f ...

  4. Java的final关键字详解

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  5. java中final 关键字的作用

    final 关键字的作用 java中的final关键字可以用来声明成员变量.本地变量.类.方法,并且经常和static一起使用声明常量. final关键字的含义: final在Java中是一个保留的关 ...

  6. Java基础 -- final关键字

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...

  7. Java中final关键字修饰变量、方法、类的含义是什么

    Java中的关键字final修饰变量.方法.类分别表示什么含义? 先看一个简单的介绍 修饰对象 解释说明 备注 类 无子类,不可以被继承,更不可能被重写. final类中的方法默认是final的 方法 ...

  8. java浅析final关键字

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...

  9. 关于Java中final关键字的详细介绍

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

随机推荐

  1. nw.js的cookie操作

    在实战中,我遇到nw.js cookie一个奇怪的现象. 当我写入cookie(非httponly)后,关闭nw.js.然后再打开nw.js发现cookie没有写入成功.经过摸索,发现 nw.js的c ...

  2. Properties集合中的方法store和Properties集合中的方法load

    Properties集合中的方法store public class Demo01Properties { public static void main(String[] args) throws ...

  3. C++实现ETW进行进程变动监控

    C++实现ETW进行进程变动监控 文章地址:https://www.cnblogs.com/Icys/p/EtwProcess.html 何为Etw ETW(Event Tracing for Win ...

  4. dense_rank()和rank() 窗口函数 mysql

    dense_rank()的语法 DENSE_RANK() OVER ( PARTITION BY <expression>[{,<expression>...}] ORDER ...

  5. python zip、*、**理解

    zip函数 zip()一般传入可迭代对象(不止一个),将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象(python2返回元组),需要手动使用tuple.list等序列转换成可使 ...

  6. vscode 个人配置 settings.json

    {     "workbench.colorTheme": "Default Dark+",     "workbench.iconTheme&quo ...

  7. 使用python3.7和opencv4.1来实现人脸识别和人脸特征比对以及模型训练

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_126 OpenCV4.1已经发布将近一年了,其人脸识别速度和性能有了一定的提高,这里我们使用opencv来做一个实时活体面部识别的 ...

  8. WPF开发随笔收录-WriteableBitmap绘制高性能曲线图

    一.前言 之前分享过一期关于DrawingVisual来绘制高性能曲线的博客,今天再分享一篇通过另一种方式来绘制高性能曲线的方法,也就是通过WriteableBitmap的方式:具体的一些细节这里就不 ...

  9. 万答#13,MySQL自增键用完后,插入数据会发生什么情况

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 MySQL自增键用完了,插入数据会发生什么情况 1.实验场景 GreatSQL ...

  10. 基于.NET6、FreeSql、若依UI、LayUI、Bootstrap构建插件式的CMS

    近几年,.net生态日益强大,特别是跨平台技术,性能提升,那真的是强大无比.为了日常能够快速开发,笔者基于基于.NET6.FreeSql.若依UI.LayUI.Bootstrap构建插件式的CMS,请 ...