final关键字

Posted 超霸霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字相关的知识,希望对你有一定的参考价值。

final

  • final是Java语言中的一个关键字
  • final表示最终的,不可变的
  • final可以修饰变量以及方法还有类等

知识点:

  1. final修饰的类无法被继承
  2. final修饰的方法无法被覆盖和重写
  3. final修饰的局部变量只能赋一次值
  4. final修饰的实例变量必须手动赋值
  5. 常量
  6. final修饰引用只能指向一个对象

final修饰的类无法被继承

final class A{
    
}
class B extends A{
    //报错,final修饰的类无法被继承
}

在这里插入图片描述

final修饰的方法无法被覆盖和重写

class A {
    public final void run(){
    }
}


public class B extends A{
    public void run(){
        //报错,final修饰的方法无法被覆盖和重写
    }
}

在这里插入图片描述

final修饰的局部变量只能赋一次值

class B{
    public static void main(String[] args) {
        final int a=3;
        a=5;  //报错,final修饰的局部变量只能赋一次值
    }
}

在这里插入图片描述

final修饰的实例变量必须手动赋值

public class B {
    public static void main(String[] args) {
        
    }
}

class User{
    int a;
    final int age=18;
    final int b;  //报错,final修饰的实例变量必须手动赋值
}

在这里插入图片描述

常量

final修饰的实例变量一般添加static修饰变成静态的,存储在方法区,节省空间。

结论:static final联合修饰的变量成为“常量” ,常量名要全部大写,每个单词之间采用下划线衔接

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

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

常量一般都是公开的:public的。

public class B {
    public static void main(String[] args) {

        System.out.println(A.age);
        System.out.println(A.name);
        A.name="李佳树";  //报错,常量的值不能变
    }
}

class A{
    static int age;
    public final static String name="蒋超";
    public final static String sex;  //报错,final修饰的实例变量必须手动赋值
}

在这里插入图片描述
在这里插入图片描述

以上是关于final关键字的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

异常和TCP通讯

异常--finally关键字

在内部片段类中使用ListView

Java之String相关内容详解(字符串和字符串常量池)面试题

代码块继承final关键字