【Java】学习笔记(1)-关于final
2021/11/23 17:10:08
本文主要是介绍【Java】学习笔记(1)-关于final,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
final关键字可以用来修饰类、方法和变量(成员变量和局部变量)
1.修饰类
被final修饰过的类叫做最终类,无法被继承,不会有子类
final class Fu { public int num = 10; public final int num2 = 20; /* public final void show() { } */ } class Zi extends Fu { // Zi中的show()无法覆盖Fu中的show() public void show() { num = 100; System.out.println(num); //无法为最终变量num2分配值 //num2 = 200; System.out.println(num2); } } //测试类 class FinalDemo { public static void main(String[] args) { Zi z = new Zi(); z.show(); } }
2.修饰方法
把方法锁定,以防被任何该方法所属类的继承类覆盖。
被final修饰的方法,不可被重写(覆盖)
//父类 class Fu { public final void show() { System.out.println("这里是绝密资源,任何人都不能修改"); } } //子类(继承类) class Zi extends Fu { // Zi中的show()无法覆盖Fu中的show() public void show() { System.out.println("这是一堆垃圾"); } } //测试类 class ZiDemo { public static void main(String[] args) { Zi z = new Zi(); z.show(); } }
报错:Zi中的show()无法覆盖Fu中的show()
3.变量
常量分为 1.字面值常量 “hello” “10” “meme” “michi”
2.自定义常量 final int x =10;
final修饰局部变量问题:
基本类型:基本类型的值不能发生改变。
引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的。
class Student { int age = 10; } class FinalTest { public static void main(String[] args) { //局部变量是基本数据类型 int x = 10; x = 100; System.out.println(x); // 100 final int y = 10; //无法为最终变量y分配值 //y = 100; System.out.println(y); // 10 System.out.println("--------------"); //局部变量是引用数据类型 Student s = new Student(); System.out.println(s.age); // 10 s.age = 100; System.out.println(s.age); // 100 System.out.println("--------------"); final Student ss = new Student(); System.out.println(ss.age); // 10 ss.age = 100; System.out.println(ss.age); // 100 //重新分配内存空间 //无法为最终变量ss分配值 ss = new Student(); } }
4.final修饰的变量初始化
被final修饰的变量只能赋值一次,1.是在定义的时候赋值,
2.在构造方法完毕前赋值(非静态常量)
class Demo { //int num = 10; //final int num2 = 20; int num; final int num2; { //num2 = 10; } public Demo() { num = 100; //无法为最终变量num2分配值 num2 = 200; } } class FinalTest2 { public static void main(String[] args) { Demo d = new Demo(); System.out.println(d.num); System.out.println(d.num2); } }
这篇关于【Java】学习笔记(1)-关于final的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?