一、final变量的特点
final
关键字可以用于修饰变量,包括局部变量、成员变量和静态变量。一旦一个变量被声明为final
,它的值就不能被改变。
对于引用类型,final
保证引用本身不会改变,但是引用指向的对象内容可以改变。
demo:
public class FinalVariable {
// final成员变量
final int finalMemberVar = 10;
// final静态变量
public static final int STATIC_FINAL_VAR = 20;
public void changeValue() {
// final局部变量
final int finalLocalVar = 30;
// finalLocalVar = 40; // 编译错误,不能改变final变量的值
}
public static void main(String[] args) {
FinalVariable obj = new FinalVariable();
// obj.finalMemberVar = 20; // 编译错误,不能改变final成员变量的值
// FinalVariable.STATIC_FINAL_VAR = 30; // 编译错误,不能改变final静态变量的值
}
}
二、final方法的特点
final
关键字也可以用于修饰方法。当一个方法被声明为final
时,它不能被子类覆盖(重写)。这样可以确保子类不会改变父类方法的实现。
demo:
public class FinalMethod {
// final方法
public final void finalMethod() {
System.out.println("这是一个final方法");
}
}
class SubClass extends FinalMethod {
// 不能覆盖final方法
// public void finalMethod() { // 编译错误
// System.out.println("尝试覆盖final方法");
// }
}
三、final类
当一个类被声明为final
时,它不能被继承。这意味着没有类可以扩展final
类。
demo:
final public class FinalClass {
// 类体
}
// 不能继承final类
// class SubClass extends FinalClass { // 编译错误
// }
四、final参数
在Java中,方法的参数也可以被声明为final
。这意味着在方法内部不能改变参数的值。
demo:
public class FinalParameter {
public void method(final int a) {
// a = 10; // 编译错误,不能改变final参数的值
}
public static void main(String[] args) {
FinalParameter obj = new FinalParameter();
obj.method(5);
}
}
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~