Java面向对象高级【final关键字的使用】

简介: Java面向对象高级【final关键字的使用】

简介

final 是Java中的一个修饰符,声明 final 方法的主要目的是防止该方法的内容被修改,final 是一个重要的Java语法,对于阅读源码和代码的理解很有帮助 !

1. final的单词理解:最终的,所以一旦被final修饰,就基本不能改变了

2. final可以用来修饰的结构:类、方法、变量

2.1 final修饰类,表示此类不能被继承。

     比如:String、StringBuilder、StringBuffer

2.2 final 修饰方法,表示方法不能被重写 。

      比如: Object类的getClass()方法

2.3 final修饰变量:既可以修饰成员变量,也可以修饰局部变量。此时的 “变量” 其实已经变成了 “常量” ,意味着一旦赋值,就不可更改。

2.3.1 final 修饰成员变量:被 final 修饰的成员变量只允许3种赋值方式:

  - 显式赋值
  - 代码块赋值
  - 构造器赋值
  这3种方法都是一旦赋值,不可更改,其中由于一个构造器将来可以构造一个对象,
  所以在一个构造器中赋值后同样不能修改,但是允许多个构造器的。

2.3.2 final 修饰局部变量:一旦被赋值就不能修改

  • 方法内声明的局部变量:在调用局部变量前,一定要赋值,而且一旦赋值,就不可更改
  • 方法的形参:在调用此方法时给形参赋值,一旦赋值,就不可更改

3. final 与 static 搭配:修饰成员变量时,兼具两者的特点,全局常量。

比如:Math.PI

相关文章
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
22 2
|
2月前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
31 3
|
2月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
在Java并发编程中,`final`关键字不仅用于修饰变量、方法和类,还在多线程环境中确保对象状态的可见性和不变性。本文深入探讨了`final`关键字的作用,特别是其在final域重排序规则中的应用,以及如何防止对象的“部分创建”问题,确保线程安全。通过具体示例,文章详细解析了final域的写入和读取操作的重排序规则,以及这些规则在不同处理器上的实现差异。
了解final关键字在Java并发编程领域的作用吗?
|
2月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
24 5
|
2月前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
37 0
Java中 final、finally、finalize 有什么区别?
|
2月前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
213 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
35 4
|
3月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
17 0
|
2月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
了解final关键字在Java并发编程领域的作用吗?