不可改变的,最终的
①修饰一个类;
②修饰一个方法;
③修饰一个局部变量;
④修饰一个成员变量;
修饰符 final class 类名称(){
//……
}
当前类不能有任何子类。
修饰符 final 返回值类型 方法名(){
//……
}
final修饰的方法不能被其子类重写。
abstract与final不能同时使用。
final 数据类型 变量名 = 变量值;
final修饰的变量为常量,不可改变(基本数据类型的数值不可改变,引用数据类型的地址值不可改变);
引用数据类型的地址值不可改变,这并不意味着内容不可改变。
public class MyFinal {
public static void main(String[] args) {
int a = 10;
System.out.println(a);//10
a = 20;
System.out.println(a);//20
final int x = 30;
System.out.println(x);//30
// x = 40;//错误写法,报错
System.out.println(x);//30
//备注:final修饰的基本数据类型变量值不可改变
//备注:final修饰的引用数据类型地址值不可改变
}
}
final 数据类型 变量名 = 变量值;
①final修饰的成员变量同样不可改变;
②成员变量有默认值,若声明的时候没有赋值则为默认值,同样是不可改变的;
③final修饰的成员变量要么声明的时候直接赋值,要么通过构造方法赋值(两种方法选其一);
④通过构造方法赋值注意:所有的构造(包括无参构造)都要保证能对final修饰的成员变量进行赋值;