final(最终的):可以修饰类,属性,方法和局部变量;用final修饰的属性,变量的命名一般用大写字母加下划线(XX—XX)的形式
使用情况:
1,当不希望类被继承时;
2,当不希望父类的某个方法被子类覆盖(重写)时,访问修饰符 final 返回类型 方法名;
3,当不希望类的某个属性的值被修改时,访问修饰符 final 数据类型 属性名;
4,当不希望某个局部变量被修改时,final 数据类型 变量名;
注意事项:
1,final修饰的属性又叫常量,一般用 大写字母XX—XX来命名;
2,final修饰的属性在定义时,必须赋初值(初始化),并且不能修改。
赋值可以在:①定义时;②构造器中;③代码块中;
3,如果final修饰的属性是静态的,则初始化的位置只能是①定义时;②在静态代码块中。不能在构造器中赋值。
4,final类不能继承,但可以实例化对象;
5,如果类不是final类,但含有final方法,则该方法虽然不能重写,但是可以被继承。
6,一般来说,如果一个类已经是final类了,就没有必要再将方法修饰词final方法。
7,final不能修饰构造器;
8,final和static 往往搭配使用效率更高,不会导致类的加载。如:当调用 i 时不会使类Demo加载,静态代码块也不会执行;
class Demo {
public static final int i = 7;
static {
System.out.println("韩顺平教育");
}
}
9,包装类(Interger,Double,Float,Boolean等都是final类),String也是final类;