// final 关键字 修饰一个类的时候
格式
publicfinalclass 类名称{//}
特点 这个类不能有任何子类,不能被继承,,,但是这个类可以拥有父类
如果一个类是被 final 关键字修饰,那么其中所有的成员方法都无法被重写(因为没有子类)
2用来修饰一个方法
当一个方法被 final 关键字修饰的时候,这个方法就是一个最终的方法,不能被覆盖重写的方法
格式:
修饰符 final 返回值类型 方法名称(参数列表){// 方法体内容 }
注意事项 : 对于类.方法来说,abstract 关键字 和 final 关键字不能同时使用
3 用来修饰一个局部变量
一次赋值,终生不变
如果没有被赋值,不会报错
一旦使用 final 关键字修饰局部变量,这个局部变量就不能就行更改了
对于基本数据类型: 不可变的是变量当中数据
对于引用数据类型: 不可变的是变量当中的内存地址值不可改变,内存值可以变
final People p3 =newPeople("xx");
System.out.print(p3);// 内存地址值
System.out.print(p3.getName());// xx
p3.setName("xxxx");
System.out.print(p3.getName());// xxxx
4用来修饰一个成员变量
对于成员变量来说,如果使用了 final 关键字修饰,那么这个变量也是不可改变的
1.由于成员变量具有默认值,一旦使用 final 关键字之后,必须手动赋值,系统不在提供默认值[默认值无意义]2.使用了 final 关键字的成员变量,只能通过 [ 直接赋值 ] 或者 [ 构造方法 ] 赋值,二选一
3.必须保证类当中的所有的重载的构造方法,都最终会对 final 成员变量进行赋值.publicclassStudent{// finalfinal String name;publicStudent(){
name =" xxx ";// 赋值}publicStudent(String name){this.name = name;// 构造方法必须初始化 name (final)}publicStudent(String name,int age){this.name = name;//}publicvoidsetName(String name){this.name = name;// 报错,不能再次进行赋值,所以系统无法自动生成set方法}}
final 关键字final 关键字 代表最终的,不可改变的常见的四种用法用来修饰一个类 final className用来修饰一个方法用来修饰一个局部变量用来修饰一个成员变量1用来修饰一个类// final 关键字 修饰一个类的时候格式public final class 类名称{ //}特点 这个类不能有任何子类,不能被继承,,,但是这个类可以拥有父类如果一个类是被 final 关键字修饰,那么其中所有的成员方法都无法被重写(因为