前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Silly Java-Final 关键字

Silly Java-Final 关键字

作者头像
翎野君
发布2023-05-12 19:51:13
1120
发布2023-05-12 19:51:13
举报
文章被收录于专栏:翎野君翎野君

Final 关键字

  • adj. 最终的;最后的;决定性的;不可改变的

1.修饰变量

final variable 意味 【最后的变量,不可改变的变量即常量】 Java中该关键字即代表常量

  • 修饰基本类型的变量,在赋初始值之后就不能修改,否则会编译不通过。
  • 修饰引用类型变量,在初始化后不能指向另外的对象,否则会编译不通过。
  • 在给被final修饰的变量赋值的时候,可以在变量声明时赋值,也可以在构造方法中赋值。

应用场景:用final修饰将变量设置为常量,以后也不打算做修改,一般同static共用。

代码语言:javascript
复制
// 固定的业务场景代码
public static final String SERVICE_SCENE_CODE = "-1";
// 定义存储于Redis中的Key
public static final String TEST_REDIS_KEY = "TEST_REDIS_KEY_FINAL";

2.修饰方法

final method 意味 【最终的方法,不可被改变的方法】Java中该关键字即代表不可被改变的方法,即不能被子类重写,子类不能改变其原有意味。

  • 将一个方法定义为final方法,为了防止任何继承自他的子类修改它的含义。
  • 类的private方法会隐式地被指定为final方法。

3.修饰类

final class 意味 【最终的类,不可改变的类】Java中该关键字代表最终类,不能再‘繁衍后代了’即不能被继承。

  • 用final修饰一个类时,表明这个类不能被继承。
  • final类中的成员变量可以根据需要设为final。
  • final类中的所有成员方法都会被隐式地指定为final方法。
代码语言:javascript
复制
 1 // 被final修饰的class是最终类,不能被继承
 2 public final class FinalClass {
 3     // 被final修饰的常量可以在声明时赋值
 4     private final String str;
 5 
 6     public FinalClass() {
 7         str = "1.被final修饰的变量必须初始化,1.声明时赋值2.构造方法中赋值";
 8     }
 9 
10     public void testOut() {
11         System.out.println("3.被final修饰的方法不能被子类重写");
12     }
13 
14     public static void main(String[] args) {
15         // 1.final变量即最终变量不能被修改
16         FinalClass finalClass = new FinalClass();
17         System.out.println(finalClass.str);
18         // 被final修饰的引用类型变量,初始化后不能指向另一个对象,否则编译不通过
19         final Object finalObject = new Object();
20         // 试图修改后编译不通过
21         finalObject = new Object();
22         // 2.在变量创建的时候赋值
23         final String finalStr = "2.被final修饰的变量,再赋值后就是最终变量即常量,不能被修改";
24         System.out.println(finalStr);
25         // 3.final修饰的方法是最终方法不能被子类重写修改其意味
26         finalClass.testOut();
27     }
28 }
29 // 5.不能继承被final修饰的最终类,否则会编译不通过
30 class CantExtend extends FinalClass {
31     public String name;
32     // 4.试图重写父类中被final修饰的方法时会导致编译不通过
33     public void testOut() {
34         System.out.println("不能重写父类中final方法");
35     }
36 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.修饰变量
  • 2.修饰方法
  • 3.修饰类
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档