JAVA——Final

发布于:2024-04-29 ⋅ 阅读:(33) ⋅ 点赞:(0)

在Java中,final是一个关键字,它可以用来修饰类、方法和变量。使用final关键字可以表示某些内容是不可变的或者不能被继承的。以下是final在Java中的主要用途:

修饰类

final修饰一个类时,表示这个类不能被继承。这通常用于设计那些不应该被继承的类,例如,Java中的String类就是final的。

final class MyFinalClass {  
    // 类定义  
}


修饰方法

final修饰一个方法时,表示这个方法不能被重写(Override)。如果父类中的方法被声明为final,那么子类就不能重写这个方法。

class MyClass {  
    final void myFinalMethod() {  
        // 方法体  
    }  
}

修饰变量

final修饰一个变量时,这个变量就变成了常量,即其值在初始化之后不能被改变。final变量可以是静态的或非静态的,也可以是基本数据类型或引用类型。但是,如果final变量是一个引用类型,那么它引用的对象的内容是可以改变的,只是引用本身不能被重新赋值指向另一个对象。

final int finalVariable = 10; // 基本数据类型的final变量,值不能改变  
final String finalString = "Hello"; // 引用类型的final变量,引用不能改变  
  
// 下面的操作会导致编译错误  
// finalVariable = 20; // 基本数据类型的final变量不能重新赋值  
// finalString = "World"; // 引用类型的final变量不能指向新的对象  
  
// 但下面的操作是允许的,如果StringBuilder是可变的  
finalStringBuilder.append(" World"); // 修改引用对象的内容


修饰方法参数

final还可以用来修饰方法参数,表示这个参数在方法内部不能被重新赋值。这通常用于确保参数不会在方法执行过程中被意外修改。

public void myMethod(final int finalParameter) {  
    // 不能在方法内部给finalParameter重新赋值  
    // finalParameter = 20; // 这会导致编译错误  
}
final关键字提供了一种机制来定义常量、防止类被继承、防止方法被重写以及防止变量被重新赋值。
这些特性有助于增强代码的安全性、可靠性和可读性,同时也有助于编译器进行优化。
需要注意的是,final和static有时可以一起使用,来定义类级别的常量,但这并不要求必须同时使用。

网站公告

今日签到

点亮在社区的每一天
去签到