final关键字和常量

举报
西红柿炒鸡蛋儿 发表于 2022/02/26 20:02:54 2022/02/26
【摘要】  一.final关键字1.final是java语言中的关键字。2.final表示: 最终的,不可变的。3.final修饰的局部变量,一旦赋值不能重新赋值。4.final修饰的方法无法被覆盖,被重写。但是可以重载5.final修饰的类无法继承。6.final控制不了能不能调用的问题,final管的是啥?final修饰的表示最后的,不能变的,不能改的。【重点】精辟:final修饰的变量,只能赋一...

 一.final关键字

1.final是java语言中的关键字。

2.final表示: 最终的,不可变的。

3.final修饰的局部变量,一旦赋值不能重新赋值。

4.final修饰的方法无法被覆盖,被重写。但是可以重载

5.final修饰的类无法继承。

6.final控制不了能不能调用的问题,final管的是啥?

final修饰的表示最后的,不能变的,不能改的。

重点】精辟:final修饰的变量,只能赋一次值。

 final修饰的实例变量必须手动初始化,不能采用系统默认值。

  final修饰的引用一旦指向某个对象,则不能再重写指向其他对象,但该引用指向的对象内部的数据是可以修改的。  //引用也是一个变量。

final的引用:

该引用只能指向一个对象,并且它只能永远指向该对象,无法再指向其他对象,并且再该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收器回收,直到当前方法结束,才会释放空间。

虽然final的引用指向对象A后,不能再重新指向对象B,但是对象A内部的数据可以被修改。


final修饰的实例变量

实例变量如果没有手动赋值的话,系统会赋默认值。

要不在实例变量后面赋值,要不在构造方法中赋值。

实例变量后面赋值: final String name  = “mingzi”

构造方法赋值:

 实例变量在什么时候赋值(初始化)?

构造方法执行的过程中赋值(new的时候赋值)


结论:final修饰的实例变量,系统不负责赋默认值,要求程序员必须手动赋值,这个手动赋值,在变量后面赋值可以,在构造方法中赋值也可以,


二.常量

常量一般都是公开(public)的,因为公开也改不了值。

final修饰的实例变量一般和static联合使用,称为常量。(常量一般都是公开的public)

 public static final double  PI = 3.1415926;

常量名建议全部大写,每个单词之间采用下划线衔接。

实际上常量和静态变量一样,区别在于:
常量的值不能变。

常量和静态变量,都是储存在方法区,并且都是在类加载时初始化。

一般都是公共的:public的。

实例变量在堆中:一个对象一份,100个对象100份。

实例变量要是被final修饰,说明该实例变量不会随着对象的变化而变化。实例变量前面应该加static关键字,变为常量、静态的,存储在方法区。

通过访问包装类中的常量,来获取最大值和最小值:

语法规范:

最大值:包装类名.MAX_VALUE;如:

int的最大值:Integer.MAX_VALUE;

byte的最大值:Byte.MAX_VALUE;

最小值:包装类名.MIN_VALUE; 如:

int的最小值:Integer.MIN_VALUE;

byte的最小值:Byte.MIN_VALUE;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。