Java基础之——final关键字的使用

#Java基础复习#

#参考文章:Java:final关键字的作用 (方法、变量、类)_java语言中在类定义时使用final关键字修饰是指这个类-CSDN博客#

一、理解含义

final是Java中一个保留的关键字,可以用于修饰变量、方法和类。

任何实体(变量,方法或类)一旦被声明final后,只能分配(赋值)一次。也就是说,

  • final修饰的变量不能用另一个值重新初始化

  • final方法不能被重写

  • final类不能被继承

编译器会检查代码,如果试图将final修饰的变量再次初始化的话,会报编译错误。

二、final变量、final方法、final类的特点

1.final修饰的变量

在Java中,我们无法更改final变量的值,final变量是只读的。例:

图示代码中的final变量b被初始化为5后再次被赋值时代码报错; 

注意:在Java中声明final变量时建议使用大写形式。例如:final int MAX = 100;

(在了解final方法和final类之前,要掌握Java的继承方面的基础。)

2.final修饰的方法

在Java中,被final修饰的成员方法不能被子类重写(覆盖)。例如,

public class Peopel {
    
    public final void eat(){
        System.out.println("人可以吃东西");
    }
    public void work(){
        System.out.println("人的任务是工作");
    }
    
}


class student extends Peopel{
    @Override
    public void work() {
        System.out.println("学生的任务是学习");
    }
    
}

在上面的示例中,我们创建了一个People类其中包含普通成员方法work()和final方法eat()。在这里,Student类继承了People类,并且顺利的重写了work()方法;

而当我们试图覆盖People类中被final修饰的eat()方法时,会提示编译错误。

3.final修饰的类

在Java中,final类不能被另一个类继承。

例如图中People类被final修饰后,便不能再被Student类所继承;

三、final关键字的应用、优点和注意点

1.final关键字的优点:

JVM和Java应用都会对final变量进行缓存。提高了程序运行性能。
final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。

2.应用于不可变类
创建不可变类要用到final关键字。不可变类是指它的对象一旦被创建了就不能被更改。例如String类型就是不可变类。不可变类有很多好处,譬如它们的对象是只读的,可以在多线程环境下安全的共享,不用额外的同步开销等等。

3.注意:

①final成员变量必须在声明的时候初始化或者在构造器中初始化,否则会报编译错误。

没有在声明时初始化的final变量称为:blank final variable(空白final变量),它们必须在构造器中被初始化,或者调用this()初始化。否则,编译器会报错“final变量(变量名)需要进行初始化”。

②对于集合、数组等类型的对象声明为final变量指的是引用的指向不能被更改,但可以向其中增加,删除或者改变其内容

③按照Java代码惯例,final变量就是常量,通常常量名要大写:
private final int COUNT = 10;


                        

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值