常见的四种用法:

1. 可以用来修饰一个类

格式:

public final class 类名称 {

//......

}

含义:当前这个类不能有任何子类。(太监类)

注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没有儿子)

2. 可以用来修饰一个方法

当final关键字来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写

格式:

修饰符 final 返回值类型 方法名称(参数列表){

// 方法体

}

注意:对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。

3. 还可以用来修饰一个局部变量

一旦使用fianl用来修饰局部变量,那么这个变量就不能进行更改(一次赋值,终生不变)。

格式:

final 数据类型 对象名

对象名 = 数据值

  • 对于基本类型来说,不可变说的是变量当中的数据不可变
  • 对于引用类型来说,不可变说的是变量当中的地址值不可变

4. 还可以用来修饰一个成员变量

对于成员变量来说:如果使用final关键字来修饰,那么这个变量也照样是不可变。

  • 由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了。
  • 对于fianl的成员变量,要么使用直接赋值,要么通过构造方法赋值。二直选其一。
  • 必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。

Javafinal关键字final关键字的几种用法相关推荐

  1. Java提高篇 —— Java关键字之static的四种用法

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

  2. 细说final的的四种用法-----修饰类,修饰方法,常量,修饰参数 及内部类与final

    final关键字用于修饰类 public final class 类名称 { - } 一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写,java中典型的final修饰的类 Strin ...

  3. java 之 继承 super关键籽 this关键字 final关键字

    继承 语法: 使用 extends 来继承 class子类    extends父类{ 子类属性 子类方法 } 继承的特点: 1.子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承 ...

  4. 随笔② Java中的关键字 --- final关键字

    一:final关键字 ① final变量:凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量.final变量经常和static关键字一起使用, ...

  5. 1.6 this关键字详解(3种用法)

    this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用. this表示当前对象 下面我们根据示例分别讲解 thi ...

  6. 【零基础学Java】—final关键字与四种用法(二十九)

    [零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...

  7. java的知识点13——多态、对象的转型(casting)、final关键字、抽象方法和抽象类、接口的作用、如何定义和使用接口?、接口的多继承、面向接口编程

    多态 多态指的是同一个方法调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关). 2. 多态的存在 ...

  8. JavaSE——面向对象高级(继承、final关键字、抽象类与接口、多态、Object类、内部类、包装类、可变参数)

    第3节 面向对象高级 一.继承 1.1 概述和使用 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法 ...

  9. java本地方法不能是final_Java final关键字

    首页 > 基础教程 > 关键字 > final关键字 Java final关键字 简介 final是java的关键字,它所表示的是"这部分是无法修改的".不想被改 ...

最新文章

  1. 汉诺塔怎么加计数次数c语言,C语言计算汉诺塔最小移动步数 (二)
  2. python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
  3. Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)(转载)
  4. HIRO 部署新一代可扩展边缘微型数据中心
  5. sip 时序图_简单几步让你看懂单片机时序图
  6. Vue通过id跳转到商品详情页
  7. 网络工程师(2) 操作系统
  8. python装饰器打印函数执行时间_python装饰器计算函数执行时间
  9. SQL语言:DQL,DML,DDL,DCL
  10. iOS底层探索之LLVM(三)——自定义Clang插件(下)
  11. eclipse birt报表开发入门
  12. 如何跨越线程调用窗体控件?(3)
  13. 详解健康体检信息管理系统技术开发
  14. L1-1 寻找250(10 分)
  15. 2017京东实习生笔试题之异或
  16. 最优化-(黄金分割法)0.618法
  17. 人工智能创新研究报告
  18. 推特开发者账号 V2【推特开发者文档V2系列1】——获取推特视频播放量
  19. 计算机二级的Word知识点,计算机等级考试二级office基础知识点总结.doc
  20. 网段sub地址应用,同一交换机下2个不同网段互通(未分配vlan)

热门文章

  1. csv逗号分隔符转换_pythonpandas读写csv数据
  2. Java多线程——ConcurrentMap、ConcurrentHashMap
  3. 【基于UDP的网络聊天室】
  4. 密码加盐原理及其实现
  5. 【Arduino】重生之Arduino 学僧(1)----Arduino简介
  6. EventLoopGroupEventLoop
  7. SystemSoftware
  8. PHP获取用户浏览器信息
  9. 【Django】settings
  10. 博主独资创办-卓明网,即将上线,敬请期待!