-
可以用来修饰一个类
格式:
public final class 类名称{}
PS:
1.当前这个类不能有任何的子类(任何一个类都有一个父类,即使没有写“extends”,也会有一个默认的object类(父类))
2.其中所有的成员方法都无法进行覆盖重写(因为不能有子类) -
可以用来修饰一个方法
格式:
修饰符 final 返回值类型 方法名称(参数类表){ 方法体 }
PS:
1.不能对final修饰的方法进行覆盖重写
2.abstract关键字和final关键字不能同时使用,因为矛盾 -
可以用来修饰一个局部变量
格式:
final 数据类型 变量名称 = 赋值;// 也可以分开进行赋值
PS:
1.一旦使用final关键字用来修饰局部变量,这个变量就不可以被改变(一旦赋值,终生不变)
2.对于基本类型来说,不可变说的是变量当中的数据不可改变;
对于引用类型来说,不可变说的是变量当中的地址值不可改变
例子:public static void main(String[] args) { final student stu = new student("柯南"); System.out.println(stu.getName()); // 这种写法是错误的,final的引用类型变量,其中地址不可改变 stu = new student("服部平次"); stu.setName("怪盗基德。。。"); System.out.println(stu.getName()); }
public class student { private String name; public student() { } public student(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
结果:
-
可以用来修饰一个成员变量
1.成员变量具有默认值,当时用final之后必须手动赋值,不会再给默认值
2.对于final的成员变量,要么直接赋值,要么通过构造方法赋值,二者选其一
3.必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值
【java】final关键字
最新推荐文章于 2024-07-07 11:22:25 发布