文章目录
- final 关键字
- final 修饰类
- final 修饰方法
- final 修饰变量
- 参考链接
final 关键字
在Java编程语言中,final关键字扮演着重要的角色,用于表示“最终的”或“不可更改的”特性。通过final关键字,可以对类、方法和变量进行限制和保护,从而提高代码的安全性和稳定性。
final 修饰类
在Java中,当一个类被final修饰时,它意味着这个类是最终的,不能被其他类继承。这种设计主要用于确保类的完整性和安全性,防止被继承后被篡改或破坏。
final class Eunuch{
}
在上述示例中,Eunuch类被声明为final,因此无法有子类继承它
。
注意事项:
声明类为final可以提高程序的性能,因为JVM可以对这样的类进行更多的优化。
通常情况下,只有当类的设计确实需要不被继承
时才应该使用final关键字。
final 修饰方法
使用final修饰方法时,意味着这个方法不能被子类重写
或覆盖
。这种限制有助于确保方法在整个继承层级中的一致性和稳定性。
class Father{
public final void method(){
System.out.println("father");
}
}
class Son extends Father{
public void method(){//错误
System.out.println("son");
}
}
在上述示例中,Father类中的method方法被声明为final
,因此子类Son无法覆盖
这个方法。
注意事项:
使用final修饰方法可以在设计框架或API时提供一定的保护机制,确保关键方法的行为不被修改。
如果确实需要在子类中修改方法的行为,就不能使用final修饰该方法。
final 修饰变量
在Java中,final修饰变量后,该变量的值将不可更改,即成为常量
。它可以修饰成员变量、局部变量以及方法参数。
• 修饰成员变量
public final class Test {
public static int totalNumber = 5;
public final int ID;
public Test() {
ID = ++totalNumber; // 可在构造器中给 final 修饰的“变量”赋值
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.ID);
}
}
在上述示例中,TOTAL_NUMBER被声明为static final,它表示一个常量。而ID则是实例变量,被声明为final后,只能在构造器中进行初始化。
• 修饰局部变量:
public class TestFinal {
public static void main(String[] args){
final int MIN_SCORE ;
MIN_SCORE = 0;
final int MAX_SCORE = 100;
MAX_SCORE = 200; //非法
}
}
在上述示例中,MIN_SCORE和MAX_SCORE都是局部变量,并被声明为final。MIN_SCORE在声明后进行赋值,而MAX_SCORE则在声明时即进行了赋值,因此后续无法修改。
注意事项:
使用final修饰变量可以增强代码的可读性和可维护性,因为常量的值一旦确定就不会被修改
。
常量命名通常采用大写字母
,多个单词之间使用下划线分隔
。
总结
通过使用final
关键字,Java程序员可以更好地管理类、方法和变量,提高代码的健壮性和可读性。合理地应用final关键字,可以有效地防止不必要的修改和继承
,从而确保程序的稳定性
和安全性
。
参考链接
链接: 3cschool