Java-关键字final详解(public static final)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
一、final修饰类 B类继承A类,相当于对A类的功能进行扩展,如果不希望对A类进行扩展,可以给A类加final关键字,这样的话,A类就无法继承了。 源代码中String就是没有子孙的 结论:final修饰的类无法被继承 二、final修饰的方法 所以final修饰的方法无法覆盖和重写。 三、final修饰的变量 (1)局部变量 无法为最终变量进行赋值了。 final修饰的变量只能赋一次值。 final修饰的变量一旦赋上值就不能再重新赋值了。 (2)fina修饰的变量如果这个变量是一个”引用”会怎么样? 解析:s2里面最初分配了0x123,然而你再给final进行赋值就不行了,因 Java中的`final`关键字是一个非常重要的修饰符,用于在编程中实现不同的限制和特性。它可以在类、方法和变量上使用,确保代码的特定部分保持不可更改或不可重定义。 一、final修饰类 当`final`关键字用于类时,它意味着这个类是不可继承的。这意味着不允许有任何其他类来扩展这个类的功能。例如,Java中的`String`类就是一个`final`类,它不允许有子类。因此,如果我们试图创建一个类继承自`String`,编译器会抛出错误。 二、final修饰的方法 `final`修饰的方法是不能被子类覆盖的。这意味着子类不能提供一个与父类同名且签名相同的新方法来改变其行为。这样的设计可以保证代码的确定性和一致性。如果一个方法被声明为`final`,那么在任何情况下,它的实现都不会改变。 三、final修饰的变量 1. 局部变量:当`final`应用于局部变量时,这意味着变量一旦被赋值后,就不能再次赋值。这在某些情况下用于确保变量的值在整个方法执行过程中保持不变。 2. 引用变量:如果`final`修饰的是一个引用变量,它只能指向一个对象,但不能改变指向的对象。也就是说,你可以修改对象的状态,但不能改变引用本身。例如,如果你有一个`final`引用到一个字符串,你可以改变字符串的内容,但不能将引用指向另一个字符串。 3. 实例变量:对于`final`修饰的实例变量,如果不初始化,编译器会报错,因为`final`变量必须在声明时或者在构造器中被初始化。一旦初始化,其值不能再改变。 四、final修饰常量 当`final`与`static`一起使用时,它们共同修饰的变量被称为常量。常量通常表示程序中不会改变的固定值,如数学常数、配置参数等。常量名通常使用全大写字母和下划线分隔,如`PI`或`MAX_SIZE`。常量和静态变量一样,存储在方法区,并在类加载时初始化。 五、总结 1. `final`修饰的类是不可继承的,保证了类的封闭性。 2. `final`修饰的方法不能被重写,保持了方法的原始实现。 3. `final`修饰的变量只能赋值一次,保证了变量值的不可变性。 4. `final`修饰的引用变量指向的对象不能改变,但对象内的数据可以修改。 5. `final`修饰的实例变量必须手动初始化,不能依赖系统默认值。 6. `final`和`static`一起使用时,常量的值不可变,存储在方法区。 理解并恰当使用`final`关键字有助于提高代码的可维护性、安全性和性能。在编写不可变对象、定义常量以及防止意外的代码修改时,`final`都是不可或缺的工具。
- 粉丝: 4
- 资源: 977
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C++的Unix V6++二级文件系统.zip
- (源码)基于Spring Boot和JPA的皮皮虾图片收集系统.zip
- (源码)基于Arduino和Python的实时歌曲信息液晶显示屏展示系统.zip
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip