当前位置:   article > 正文

java中final关键字,修饰变量、引用、类、方法、实例变量的问题_final修饰的变量

final修饰的变量

一、final在英语中的意思

      final在英语中表示 最终的、不可变更的。

二、final修饰的变量

局部变量:

        final修饰的局部变量一旦赋值就不能再次赋值,只能赋值一次。若是再次赋值会报错;

实例变量:

        final修饰实例变量,也是只能赋值一次。

        final修饰的实例变量,系统不会赋默认值,必须程序员手动赋值。如果不手动赋值,就会报错。

给final修饰的实例变量赋值

        1、直接赋值

  1. public class Text{
  2. final double A=10;
  3. }

        2、用构造方法赋值(实例变量在构造方法执行的过程中会赋默认值,在构造方法中在系统赋默认值之前赋值就没有问题)

  1. public class Text{
  2. //定义实例变量
  3. final double A;
  4. //构造方法
  5. public Text(){
  6. this.A=50;
  7. }
  8. //或者用带参数构造方法赋值
  9. public Text(double b){
  10. this.A=b;
  11. }
  12. }

        3、final修饰的实例变量一般用stastic修饰(此变量叫做常量)

例如:

static final double PI=3.1415926;

        常量的命名规范:建议:命名常量单词所有字母都大写,单词与单词之间用下划线链接;

        常量的值不能变;常量和静态变量一样都存储在方法区,并且都在类加载的时候初始化;

三、final修饰的方法

        final修饰的方法无法被重写(覆盖);

四、final修饰的类

        final修饰的类无法被继承;

五、final修饰的引用

          final修饰的引用一旦指向一个对象,就不能在重新指向其他对象,虽然指向不能改变,但是该引用指向的对象内部的数据是可以修改的;

例如:

  1. demo a=new demo();
  2. a=new demo1();//编译通过
  1. final demo a=new demo();
  2. a=new demo1(); //编译报错
  3. //提示:Cannot assign a value to final variable 'a'
  1. //定义final修饰的引用
  2. final demo a = new demo();
  3. //通过引用给demo类中的实例变量A赋值
  4. a.A = 20;
  5. //编译通过

总结:final表示最终的、不可变的,无论final修饰什么,都离不开本意。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/574300
推荐阅读
相关标签
  

闽ICP备14008679号