final这个单词的意思是“最终的; 不可改变的”总的来说,在java中被final修饰的都是不想在后续程序中改变的。
在Java中final主要有以下几个用处:

1、修饰变量的定义(此处的变量主要指:静态变量、属性、局部变量、形参变量):

对于静态变量,属性来说,用final修饰后,他们只允许被赋值一次,且这一次必须是在声明时就进行,就是说不能先在一个语句中声明一个变量,然后在后续语句中赋值,只能在声明变量的同时对变量赋值(在同一个语句中)

对于局部变量来说,在声明时用了final修饰,那么只允许被赋值一次,可以不用在声明变量时就赋值,;

对于形参变量来说,一旦被final修饰,他只有在使用方法时传参这一次赋值机会,在方法内部是不能改变其值的。

2、修饰普通方法的定义:普通方法被final修饰后该方法在子类中不能被重写。

3、修饰类的定义:被final修饰后这个类不能被继承,就是说这个类不能有子类。

具体作用在代码里说明

//代码没有实际意义,单纯为了说明final作用
public class Test {//被final修饰的静态变量 就是我们通常所说的常量final static int PRICE = 1000;//MAXSIZE 只能在这里被赋值,如果不赋值会报错//final 修饰的类不能被继承final class animal {//name属性被final修饰后只能在这里赋值private final String name = "山羊";//被final修饰的普通方法不能子类中重写public final void getName(){System.out.println(name);}}public static void main(String[] args) {//x可以暂时不用赋值,final int amount;amount = 10;int price = totalPrice(amount);}//final修饰的形参变量在方法内部不能被改变public static int totalPrice(final int amount){return amount * PRICE;}
}

Java关键字——final的用法相关推荐

  1. Java关键字final、static、this、super使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  2. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  3. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非 ...

  4. [Java] 关键字final、static使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  5. Java关键字final使用详解

    2019独角兽企业重金招聘Python工程师标准>>> http://docs.oracle.com/javase/tutorial/java/IandI/final.html Wr ...

  6. 【java】java 关键字: final详解

    1.概述 转载:java 关键字: final详解

  7. Java关键字final、static

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  8. 【Java编程】Java关键字final使用详解

    根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变 ...

  9. java中常量final的用法_详解Java中final的用法

    本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...

最新文章

  1. 基于CUDA实现立方体贴图 (Cubemaps) 转换为全景图 (Equirectangular Panorama)
  2. JavaScript - this详解 (三)
  3. 报错解决:InvalidArgumentError: Received a label value of 101 which is outside the valid range of [0, 101
  4. C语言打印等腰三角形
  5. Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)
  6. C语言入门书籍--C语言程序设计
  7. C++多线程简单入门(Windows版本)
  8. 英语阅读测试,很神奇吧~
  9. linux 脚本1加到100,shell脚本之从1加到100之和的思路
  10. 扩大mysql的cpu_MySQL CPU占用超过100%
  11. 接口测试(测试用例)
  12. VMware-Esxi6.7各个版本镜像文件iso下载链接
  13. 以WGR614v9与WG602v4为例,说明WDS功能的配置过程
  14. web h5调用微信分享功能
  15. 剑道独尊 无上剑意(下)
  16. [W806捣鼓手记]FPU性能简单测试——2022.05.23
  17. 软件测试最容易陷入的28个误区
  18. 幂模函数方程组的解法(一)
  19. J酒店上海中心天之锦餐厅成为全球建筑物中最高的景观餐厅
  20. 2008中国互联网十大网络流行词

热门文章

  1. 【UML建模】UML类图几种关系的总结
  2. 【前端笔试算法题】之小偷分赃题
  3. Scope(作用域)
  4. 4023-基于双向链表的双向冒泡排序法
  5. java面向对象编程的三大基本特性--封装,继承,多态
  6. php之time的用法,php中time()与$_SERVER[REQUEST_TIME]用法区别
  7. php 冒泡排序数组,php一维二维数组键之冒泡排序
  8. android intent拍照,Android通过Intent方式调用相机拍照取得图片
  9. C++ 中 freopen()函数的用法
  10. mysql与python的交互