当前位置: 首页 > 后端技术 > Java

详细介绍final关键字的使用

时间:2023-04-01 15:49:07 Java

详解final关键字的使用大家好,这里是Ketang。接下来就给大家好好介绍一下final关键字的用法。final关键字表示不能更改。那么在java中,它所修饰的变量、方法、类又是如何使用的呢?记住“不可变”,你就能很好地理解它的用法。1、修饰变量final在修饰变量时,不可改变的变量顾名思义就是常量。java中有两种类型的变量:基本数据类型和引用数据类型。修改基本数据类型,基本数据类型的值不能改变。对于引用类型来说,就是引用地址不能改变,但是对象的内容是可以改变的。比如下面的代码:这是一个用户类,它有一个name属性publicclassUser{privateStringname;公共用户(字符串名称){this.name=name;}publicStringgetName(){返回名称;}publicvoidsetName(Stringname){this.name=name;}@OverridepublicStringtoString(){return"User{"+"name='"+name+'\''+'}';}}接下来,我们用final关键字修改User引用对象user,然后将user指向一个新的对象会报错,但是修改name的值是正常的。publicclassUserDemoTset{publicstaticvoidmain(String[]args){finalUseruser=newUser("tangke");//user=newUser("ketang");//报错Cannotassignavaluetofinalvariable'user'user.setName("ketang");//可以正确赋值System.out.println(user);//打印出来的用户名是ketang}}可见,final关键字修饰的引用类型不能改变它的引用地址,但是可以改变它的内部属性。2.修改方法在jdk1.5之前,final修改的方法是为了防止final修改的方法被覆盖。另一方面,如果方法不大,编译器会默认将方法的调用转换为内联调用。,以提高效率。jdk1.5以后虚拟机自动优化,final关键字只是用来禁止方法的重写。继承类后,子类只有调用方法的权利,没有重写方法的权利。注意:final修饰的方法不能重写,但是可以重载。父类有一个带有final修饰符的方法:classParent{privateintage;publicfinalintgetAge(){返回年龄;}}classSonextendsParent{@OverridepublicintgetAge(){returnsuper.getAge();}//编译错误}3.修饰类final修饰类表示该类不能被继承。如果想让一个类不被继承,可以使用final关键字修饰。例如,常见的String是一个final修饰类。final修饰类的方法不能再改写,也可以认为是final修饰。final关键字的讲到这里就结束了。这里是Ketang,他将分享他的学习和收获。欢迎大家交流。csdn地址:https://blog.csdn.net/qq_4225...