Java面向对象进阶——final

本文介绍了Java中的final关键字如何在类、方法和变量上应用,强调了final修饰的类不可继承、方法不可重写,以及基本数据类型和引用数据类型的区别。final修饰引用数据类型时,值可变但地址不可变。
摘要由CSDN通过智能技术生成

一. final关键字

学习了继承后,我们知道,子类可以在父类的基础上改写父类的内容,比如方法重写

如果有一个方法我不想让别人去改写里面内容,那该怎么办呢?

Java提供了final关键字,表示修饰的内容不可变

1. final修饰的类

final修饰的类不能被继承

格式:

修饰符 final class 类名{}

2. final修饰的方法

final修饰的方法不能被重写

格式:

修饰符 final 返回值类型 方法名{}

3.final修饰的变量

final修饰的变量是常量

⑴常量

Ⅰ.常量,就是不能改变值的量

Ⅱ.常量的命名规则:

①单个单词全部大写

②多个单词,全部大写,单词之间用下划线隔开

⑵修饰基本数据类型

基本数据类型你还记得吗?

byte, short, int, long, char, boolean, float, double

被final修饰的基本数据类型变量,被记录的值不能发生改变!

如图:我定义了一个NUM常量,我想要更改被记录的值,程序直接保错

8efb15cde0e94bbfa634f84a6dfb850e.png

⑶修饰引用数据类型

那根据上面的结论,被final修饰的引用数据类型也是无法修改值的,那真的是这样吗?

如图:我定义了一个final修饰的数组,并初始化值都为1,那我试着更改里面的值,运行程序发现程序没有报错,而是可以更改的!

11a7ffbfb2f6438a9eeb820c2e27f36b.png

 因此,final修饰的引用数据类型与基本数据类型是不相同的

被final修饰的引用数据类型变量,被记录的值可以发生改变,但是地址值不变!

如图:我开始创建了一个数组,但我想要更改数组的地址值,所以又new了一个新数组赋值给他,但程序报错了

e277769b790944fabdf93cb451d2f2c4.png

 

若有不足,错误之处,望指出更正₍˄·͈༝·͈˄*₎◞ ̑̑

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤姆大聪明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值