final关键字
Posted 超霸霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字相关的知识,希望对你有一定的参考价值。
final
- final是Java语言中的一个关键字
- final表示最终的,不可变的
- final可以修饰变量以及方法还有类等
知识点:
- final修饰的类无法被继承
- final修饰的方法无法被覆盖和重写
- final修饰的局部变量只能赋一次值
- final修饰的实例变量必须手动赋值
- 常量
- 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]_[初级]_[配置自动完成的代码片段]