当前位置 : 主页 > 手机开发 > harmonyos >

您掌握了final关键字吗?

来源:互联网 收集:自由互联 发布时间:2023-08-25
在Java中,final关键字可以修饰变量,方法和类。它们表达的意义如下: 1:修饰变量:该变量赋值之后不可再修改或重新赋值,这种变量可以当成常量使用 2:修饰方法:方法不可被重写


在Java中,final关键字可以修饰变量,方法和类。它们表达的意义如下:

1:修饰变量:该变量赋值之后不可再修改或重新赋值,这种变量可以当成常量使用

2:修饰方法:方法不可被重写

3:修饰类:类不可被继承

本篇文章老谭专门探讨一下第一种情况。

1,  final变量的赋值:

public           class           FinalDemo {         


                    final           int           NUM;         


                    void           m1() {         


                    final           int           NUM1;         


                    }         


          }



该段代码编译不会成功。final修饰的类成员NUM是必须与声明时同时赋值的,即要使用如下语句:

final           int           NUM=          20          ;



而final修饰方法中的局部变量则无需同时赋初始值,可以在使用之前赋值,但不可多次赋值。

但是可以使用初始化块为final修饰的类成员赋值,而且实例初始化块甚至可以出现在类成员声明之前:


public           class           FinalDemo {         


                    final           int           NUM;         


                    {         


                    NUM=          20          ;         


                    }         


                    void           m1() {         


                    final           int           NUM1;         


                    }         


          }



类似的,如果final与static同时使用的话,则应该使用静态初始化块为该成员赋值。

 

2,  final修饰引用类型数据:

假设有以下两个类:

pubic           class           User{         


                    int           num;         


          }         


          public           class           FinalDemo {         


                    final           User user=          new           User();         


                    public           static           void           main(String[] args) {         


                    FinalDemo demo=          new           FinalDemo();         


                    demo.user=          new           User();         


                    }         


          }



编译时demo.user=new User();这句代码会出现编译错误,因为user是final修饰的,不可重新赋值。但是以下代码能够成功编译:

public           class           FinalDemo {         


                    final           User user=          new           User();         


                    public           static           void           main(String[] args) {         


                    FinalDemo demo=          new           FinalDemo();         


                    demo.user.num=          30          ;         


                    }         


          }



final变量中的非final属性是可以重新赋值的。



您掌握了final关键字吗?_java final


萌萌的IT人


网友评论