Java关键字——final的用法
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的用法相关推荐
- Java关键字final、static、this、super使用总结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- JAVA中Final的用法
JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...
- 转!Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非 ...
- [Java] 关键字final、static使用总结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- Java关键字final使用详解
2019独角兽企业重金招聘Python工程师标准>>> http://docs.oracle.com/javase/tutorial/java/IandI/final.html Wr ...
- 【java】java 关键字: final详解
1.概述 转载:java 关键字: final详解
- Java关键字final、static
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- 【Java编程】Java关键字final使用详解
根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变 ...
- java中常量final的用法_详解Java中final的用法
本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...
最新文章
- 基于CUDA实现立方体贴图 (Cubemaps) 转换为全景图 (Equirectangular Panorama)
- JavaScript - this详解 (三)
- 报错解决:InvalidArgumentError: Received a label value of 101 which is outside the valid range of [0, 101
- C语言打印等腰三角形
- Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)
- C语言入门书籍--C语言程序设计
- C++多线程简单入门(Windows版本)
- 英语阅读测试,很神奇吧~
- linux 脚本1加到100,shell脚本之从1加到100之和的思路
- 扩大mysql的cpu_MySQL CPU占用超过100%
- 接口测试(测试用例)
- VMware-Esxi6.7各个版本镜像文件iso下载链接
- 以WGR614v9与WG602v4为例,说明WDS功能的配置过程
- web h5调用微信分享功能
- 剑道独尊 无上剑意(下)
- [W806捣鼓手记]FPU性能简单测试——2022.05.23
- 软件测试最容易陷入的28个误区
- 幂模函数方程组的解法(一)
- J酒店上海中心天之锦餐厅成为全球建筑物中最高的景观餐厅
- 2008中国互联网十大网络流行词
热门文章
- 【UML建模】UML类图几种关系的总结
- 【前端笔试算法题】之小偷分赃题
- Scope(作用域)
- 4023-基于双向链表的双向冒泡排序法
- java面向对象编程的三大基本特性--封装,继承,多态
- php之time的用法,php中time()与$_SERVER[REQUEST_TIME]用法区别
- php 冒泡排序数组,php一维二维数组键之冒泡排序
- android intent拍照,Android通过Intent方式调用相机拍照取得图片
- C++ 中 freopen()函数的用法
- mysql与python的交互