美文网首页
p5-final系列:java关键字final的作用

p5-final系列:java关键字final的作用

作者: 沉默的小象 | 来源:发表于2021-04-26 06:45 被阅读0次
  • 修饰类,表示类不可被继承。
  • 修饰方法,表示子类不可以覆盖此方法,但是本类可以重载此方法。


    image.png
    image.png
  • 修饰变量,表示变量一旦被赋值,就不能再修改它的值。

final修饰变量的更多细节

  • final 修饰类变量(被static修饰的),声明时赋值,或者在静态初始化块(Initialization block)中赋值。不能在运行时赋值。


    image.png
    image.png
  • final 修饰成员变量,声明时赋值,或者在非静态初始化块中赋值,或者在构造器中赋值,不能用其他方式设置赋值。


    image.png
  • final 修饰局部变量,所有局部变量使用前都必须赋值,与final无关。

基本数据类型与引用数据类型的情况

  • final修饰的变量如果是基本数据类型,一旦被赋值,就不能再修改。
  • final修饰的变量如果是引用数据类型(包括数组),一旦被初始化,就不能再指向另一个对象。但是 引用对象的成员变量值是可变得。
public class Person {
    public String name;
    public int age;
}


public class FinalRefTest {
    public static void main(String[] args) {
        final int[] array = new int[]{1, 2, 3, 4};
        array[0] = 5;//合法
   //   array=null;//不合法

        final Person p = new Person();
        p.name = "zhangsan"; //合法
//      p = null;//不合法
        
    }
}

相关文章

网友评论

      本文标题:p5-final系列:java关键字final的作用

      本文链接:https://www.haomeiwen.com/subject/yjirrltx.html