博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 关键字 final
阅读量:4681 次
发布时间:2019-06-09

本文共 1055 字,大约阅读时间需要 3 分钟。

final:最终的,确保使用前是被赋值得,一旦赋值后不可修改。

 

 1  数据

  ①局部变量

    基本数据类型:

      可以先定义后赋值,但要保证在使用前是已被赋值的,一旦赋值后不可修改;

    引用数据类型:

      可以先定义后赋值,但要保证在使用前是已被赋值的,一旦赋值后不可修改;

      引用内容不可修改,但备用用的对象内容可以被修改;

  ②成员变量

      必须保证成员变量在使用前被赋值;

      成员变量赋值的方式有两种,1声明变量时赋值,2构造函数中赋值;

public static void main(String[] args) {                //局部变量        //①基本数据类型        final int val;//先定义        // val = val + 1;//报错没有赋值,无法使用        val = 7 ;//再赋值                //②引用数据类型        final Score score = new Score("Jack",98,95,90);        score.toString();        //score = new Score("Tom",77,89,99);//引用无法再次修改        score.name = "Tom";        score.toString();            }

 

2  方法参数

  在方法参数上做 final 修饰后,整个方法体内参数值不允许被改变。

public Score(final String name,int yuWen, int shuXue, int yingYu) {        //name = "jack";//报错        this.name = name;        this.yuWen = yuWen;        this.shuXue = shuXue;        this.yingYu = yingYu;    }

 

3  方法

  在方法上做 final 修饰后,被继承的子类无法覆盖此方法,可以被继承。

  不可以修饰构造方法。

3 类

  在类上做 final 修饰后,此类不允许被继承。

  违背了面向对象编程中的 “ 继承 ”

 

转载于:https://www.cnblogs.com/devan/p/11496580.html

你可能感兴趣的文章
macos 下usb键盘问题.
查看>>
SQL函数学习(十六):STUFF()函数
查看>>
Apache Hadoop 和Hadoop生态圈
查看>>
Ctrl+Enter 选中文本提交
查看>>
android WIFI
查看>>
常用的匹配正则表达式和实例
查看>>
小组成员及其git链接
查看>>
SQL case when else
查看>>
MVc Identity登陆锁定
查看>>
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
查看>>
ultraedit26 运行的是试用模式_免费试用U盘数据恢复工具 – 轻松找回U盘丢失的各种数据!...
查看>>
plsql 查询存储过程死锁语句_插入语句/存储过程死锁
查看>>
bootstrap table 收缩_bootstrap-table方法之:expandRow-collapseRow,展开或关闭当前行数据...
查看>>
jsp跳转到本身页面_五种JSP页面跳转方法详解
查看>>
mysql r_mysql:’r’是什么意思?
查看>>
无法加载 mysql 扩展_请检查您的 php 配置. - 文档_无法载入 mysql 扩展 请检查 PHP 配置...
查看>>
非空 默认 男 mysql_MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
查看>>
mysql错误修改数据_mysql数据修改问题
查看>>
navicat忘记mysql密码_navicat连接My SQL时忘记root密码处理方法
查看>>
mysql 左连接 左外连接吗_什么是左外连接?左外连接在工作表查询中的应用
查看>>