Java-16 final关键字
2021/9/28 20:11:05
本文主要是介绍Java-16 final关键字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.final关键字是最终的意思,可以修饰类,局部变量,成员变量,成员方法
1.1 修饰类:被修饰的类不能被继承,就是说这个类不能有任何的子类,也就是太监类,只能继承父类,不能被继承
格式:publi final class 类名称{}
注意:一个类如果为final类,那么其中所有的成员方法都不能被覆盖重写(因为没有子类)
final class He{ public void methon(){ System.out.println("方法块执行"); } } /* 报错 class You extends He{ } */
1.2 修饰成员方法:当final用来修饰成员方法时,这个方法就是最终方法,不能被覆盖重写
格式:修饰符 final 返回值类型 方法名称(形参){}
class Fu{ public final void methon(){ System.out.println("父类方法执行"); } } class Son extends Fu{ public void methon(){ System.out.println("子类方法执行"); } } //Error:(20, 17) java: com.shujia.day1.day3.Son中的methon()无法覆盖com.shujia.day1.day3.Fu中的methon() 被覆盖的方法为final
1.3 修饰局部变量:一旦使用final修饰局部变量,那么这个变量就不能进行更改,一旦赋值,终生不变
//当final修饰局部变量,对于基本类型来说,不可变的是变量中的值不可变 // 对于引用类型来说,不可变的是变量中的地址值不可变 public class FinalDemo{ public static void main(String[] args) { int num1=20; System.out.println(num1);//20 num1=23; System.out.println(num1);//23 //正确写法 final int num2 =20; System.out.println(num2);//20 // num2=30;报错 // num2=20;报错 //正确写法 final int num3; num3=40; System.out.println(num3); //final修饰引用数据类型 FinalDemo6 fin = new FinalDemo6("张三"); System.out.println(fin);//com.shujia.day1.day3.FinalDemo6@4554617c System.out.println(fin.name);//张三 fin=new FinalDemo6("李四"); System.out.println(fin);//com.shujia.day1.day3.FinalDemo6@74a14482 System.out.println(fin.name);//李四 System.out.println("========================="); final FinalDemo6 fin2 = new FinalDemo6("王五"); System.out.println(fin2);//com.shujia.day1.day3.FinalDemo6@1540e19d System.out.println(fin2.name);//王五 // fin2=new FinalDemo6("老王");错误写法,final修饰不能改变地址、 fin2.name="老王"; System.out.println(fin2);//com.shujia.day1.day3.FinalDemo6@1540e19d System.out.println(fin2.name);//老王 } }
1.4 final关键字修饰成员变量:如果使用final修饰成员变量,那么这个变量也是照样看不可变,不会再给默认值,必须手动赋值
/* 使用final修饰成员变量,那么这个变量也是照样看不可变,不会再给默认值,必须手动赋值,两种方法,二者选其一 1.直接赋值 2.构造方法赋值,必须保证所有重载的构造方法都要对final修饰的成员变量进行赋值 */ class Person{ // 构造方法赋值 private final String name; // private final String name="张三"; //直接赋值 public Person(String name) { this.name = name; } public Person() { name="张三"; } public String getName() { return name; } //使用构造方法赋值,需要删除setter方法,不能对final修饰的成员变量重新赋值 // public void setName(String name) { // this.name = name; // } }
这篇关于Java-16 final关键字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能