final
一、final修饰类
类不能被继承
final class A{}
class B extends A{}//报错
二、final修饰方法
方法不能被重写
class C{
public final test()
{}
class D extends C{
@Override
public void test(){}//报错
}
}
三、final修饰变量
1.局部变量
final int a;
a=12;
a=13;//第二次赋值,出错了
final double r=3.14;
r=0.1;//报错
public static void buy(final double z)
{z=0.1;//第二赋值,出错}
2.成员变量
(1)静态成员变量
public static final String SHOOL_NAME="jjj";
//常量:public static final修饰的成员变量;建议名称全部大写,多个单词下划线连接
(2)实例成员变量
private final Stirng name="ee";//无法修改,这种用法没有意义,知道就行
四、注意
- final修饰基本类型的变量,变量存储的数据不能被改变
- final修饰引用类型的变量,变量存储的地址不能改变,但地址所指向对象的内容可以被改变的
五、常量
1.概念
- 使用了static final 修饰的成员变量就被称为常量
- 作用:通常用于记录系统的配置信息。
- 常量名的命名规范:建议使用大写英文单词,多个单词使用下划线连接起来
2.使用常量记录系统配置信息的优势、执行原理
- 代码可读性更好,可维护性更好
- 程序编译后,常量会被“宏替换”:出现常量的地方全部会被替换成其记住的字面量,这样可以保证这样可以保证使用常量和直接用字面量的性能是一样的