`
aeritheve
  • 浏览: 33953 次
  • 性别: Icon_minigender_2
  • 来自: 沈阳
社区版块
存档分类
最新评论

final关键字

阅读更多

final关键字

 

我们首先来说说final。它可以用于以下四个地方:

1. 定义变量,包括静态的和非静态的。

2. 定义方法的参数。

3. 定义方法。

4. 定义类。

 

我们依次来回顾一下每种情况下final的作用

针对于上面12

如果final定义变量,就表示这个变量被赋予的值是不可变的,即它是个常量;

如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,需要注意的是,不可改变的只是这个变量所保存的引用,并不是这个引用所指向的对象。

如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。

被final修饰的变量必须被初始化。初始化的方式有以下几种:

在定义的时候初始化。

final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。

静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。

final变量还可以在类的构造器中初始化,但是静态final变量不可以。

注意:
final变量(常量)和静态final变量(静态常量)未被初始化时,编译会报错。

用final修饰的变量(常量)比非final的变量(普通变量)拥有更高的效率,因此我们在实际编程中应该尽可能多的用常量来代替普通变量,这也是一个很好的编程习惯。

 

针对于上面3

当final用来定义一个方法时它表示这个方法不可以被子类重写,但是它这不影响它被子类继承。

这里需要特殊说明的是,具有private访问权限的方法也可以增加final修饰,但是由于子类无法继承private方法,因此也无法重写它。编译器在处理private方法时,是按照final方法来对待的,这样可以提高该方法被调用时的效率。不过子类仍然可以定义同父类中的private方法具有同样结构的方法,但是这并不会产生重写的效果,而且它们之间也不存在必然联系。

 

针对于上面4

由于final类不允许被继承,编译器在处理时把它的所有方法都当作final的,因此final类比普通类拥有更高的效率。而由关键字abstract定义的抽象类含有必须由继承自它的子类重载实现的抽象方法,因此无法同时用final和abstract来修饰同一个类。同样的道理,final也不能用来修饰接口。final的类的所有方法都不能被重写,但这并不表示final的类的属性(变量)值也是不可改变的,要想做到final类的属性值不可改变,必须给它增加final修饰

0
3
分享到:
评论

相关推荐

    22.final关键字.zip

    22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22.final关键字.zip22...

    final关键字的使用.mp4

    final关键字的使用f

    final关键字详细解读

    final关键字是Java语言中的一个基本概念,它用于限制类、变量、方法以及引用的修改和扩展。final关键字的主要作用是告诉编译器该元素是最终的,不可变的。对于初学者来说,掌握final关键字的使用可以帮助编写出更加...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能改变,或者类和方法不能被进一步扩展。 - 当`final`修饰类时,该类不能被继承,如`final class MyClass {}`,这意味着MyClass不能作为其他...

    day11 05 final关键字用于修饰成员变量

    day11_05_final关键字用于修饰成员变量

    Java编程中static和final关键字的陷阱.pdf

    Java编程中static和final关键字的陷阱.pdf Java编程中static和final关键字的陷阱是Java开发中两个重要的关键字,但是它们的使用也存在一些陷阱,需要开发者注意掌握。 static关键字可以用于修饰属性、方法和类。...

    Java零基础-final关键字.md

    ### Java零基础-final关键字 #### 内容概要 本文主要介绍了Java中final关键字的概念及其在实际编程中的应用。读者将能够理解final关键字的基本定义、用途及作用范围,并且掌握如何在不同的编程场景中合理使用它。...

    final 关键字用法

    java程序设计中,final 关键字用法,通过代码演示java程序设计中,final 关键字用法,

    深入理解Java中的final关键字_动力节点Java学院整理

    Java 中的 `final` 关键字是一个至关重要的概念,它被用来声明类、方法和变量,以确保它们在程序执行过程中不可更改。深入理解 `final` 关键字可以帮助开发者写出更加安全、高效的代码。 首先,`final` 关键字可以...

    Java final关键字

    在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来声明一个变量、方法或类为不可变的。在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量...

    【Java语言基础】final关键字

    【Java语言基础】final关键字 修饰词:final 最终的最后的 final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。 final 最终的最后的 final修饰变量时,表示该变量一旦获得了初始值之后...

    Java中的final关键字详解及实例

    Java中的final关键字 1、修饰类的成员变量 这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改。   上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误。 ...

    JavaSE之final关键字与成员变量的类型

    【JavaSE之final关键字与成员变量的类型】 在Java编程语言中,`final`关键字扮演着重要的角色,它表示“最终”或“不可改变”的特性。对于初学者来说,理解`final`的关键字用法是掌握JavaSE基础的重要一步。本篇...

    final关键字思维导图.xmind

    final关键字

    深入解析Java编程中final关键字的作用

    在Java编程中,final关键字扮演着至关重要的角色,它用于声明不可变的变量、方法以及类,以确保代码的稳定性和安全性。以下是关于final关键字的深入解析: 1. **final类**: 当一个类被声明为final时,这意味着这...

    JavaSE基础:多态、final关键字-27

    在这个主题中,我们将深入探讨多态、final关键字以及与之相关的访问控制权限、package和import的使用。 首先,多态(Polymorphism)是面向对象编程的三大特性之一,它允许我们使用一个父类类型的引用指向其子类的...

    final关键字的使用

    ### Final关键字详解 #### 一、Final的基本概念与作用 `final`关键字是Java语言中的一个重要的修饰符,它的含义非常直接——“最终”的意思。它可以在不同的上下文中发挥不同的作用,主要体现在以下三个方面: 1....

    Java中final关键字详解

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。 主要介绍:一.final关键字的基本...

    stati、thi、supe、final关键字详解

    四、final关键字 final在Java中有多种用途: 1. **修饰变量**:声明为final的变量一旦赋值后就不能再改变。 2. **修饰方法**:final方法不能被子类重写,确保了行为的一致性。 3. **修饰类**:声明为final的类不能被...

Global site tag (gtag.js) - Google Analytics