Java中final关键字的学习

final关键字


在Java编程语言中,final关键字是一个非常重要的概念,它用于表示一个变量、方法或类是不可变的或不能被进一步修改的。以下是final关键字的几种常见用法:

1. 修饰变量

  • 常量final修饰的变量称为常量,一旦赋值后就不能被改变。这适用于基本数据类型和对象引用。对于基本数据类型,final保证了变量的值不可变;对于对象引用,final保证了引用不能指向另一个对象,但对象本身的状态(即对象的属性)是可以改变的。
  • 成员变量:对于类的成员变量,如果声明为final,则必须在构造方法或初始化块中对其进行初始化,之后就不能再被修改。
  • 局部变量final也可以修饰局部变量,一旦赋值后,该变量的值就不能被改变。

2. 修饰方法

  • 使用final修饰的方法表示该方法不能被子类重写。如果尝试在子类中重写该方法,编译器将报错。这有助于保护方法不被意外修改,确保方法的稳定性和可预测性。

3. 修饰类

  • 当一个类被声明为final时,表示该类不能被继承。这通常用于那些不希望被扩展的类,如工具类、枚举类型等。如果尝试继承一个final类,编译器将报错。

4. 修饰方法参数

  • 在方法定义中,final也可以用来修饰参数。这表示在方法体内,参数的值(对于基本数据类型)或引用(对于对象类型)不能被改变。这有助于保证方法参数的不可变性,防止在方法执行过程中被意外修改。

注意事项

  • final修饰的变量必须在声明时或构造方法中初始化(对于成员变量),否则编译器会报错。
  • final修饰的引用类型变量不能指向另一个对象,但对象本身的状态(即对象的属性)是可以修改的。
  • final修饰的方法不能被重写,但可以被重载。
  • final修饰的类不能被继承,但类中的成员变量和方法(除了private方法,它们隐式地被指定为final)可以被继承并访问。

示例

public final class FinalClass {
    private final int number = 10; // final成员变量,必须在声明时或构造方法中初始化

    public final void show() { // final方法,不能被重写
        System.out.println("This is a final method.");
    }

    public void anotherMethod(final String param) { // final参数,参数值在方法体内不能改变
        // param = "another value"; // 这将导致编译错误
        System.out.println(param);
    }
}

public class Test {
    public static void main(String[] args) {
        FinalClass fc = new FinalClass();
        fc.show(); // 调用final方法
        fc.anotherMethod("Hello, final parameter!"); // 调用带有final参数的方法
    }
}

在这个示例中,FinalClass是一个final类,不能被继承。它有一个final成员变量number和一个final方法show()anotherMethod()方法接受一个final参数param,该参数在方法体内不能被重新赋值。

posted @   BingBing爱化学-04044  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示