static与final详解与陷阱

本文深入探讨Java中的静态关键字(static)及其使用,包括静态属性、静态方法、最终关键字(final)的特性与应用,静态代码块的执行过程,以及它们之间的区别与联系。了解这些概念对于构建高效、易于维护的Java程序至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LESSON3

1、static关键字:可以用于修饰属性,也可以用于修饰方法,还可以修饰类

2、Static修饰属性:无论一个类生成了多少对象,所有这些对象共同使用一个唯一一份静态成员变量,如果一个对象对该静态成员变量进行了修改,其他对象的该成员变量的值也随之发生变化。如果一个成员变量是static的,那么我们他通过类名.成员变量名的方式来使用它(java推荐使用)。

3、Static修饰方法:static修饰的方法叫静态方法。通过类名.静态方法的方式来

4、Final关键字:可以修饰属性,方法,类。

5、Final修饰类:当一个类被final修饰时,表示该类是终态类,该类不能被继承。

6、Final修饰方法:当一个方法被final修饰时表示该方法是一个终态方法,既不能被重写。

7、Final修饰属性:当一个属性被final所修饰时,比哦啊是该属性不能被改写。

8、当final修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化(比如不能从10变成20);如果final修饰一个引用类型时,表示该引用类型不能在指向其他对象了,但该引用类型对象的内容是可以改变的。

9、对于final类型成员变量,一般来说有两种赋初值方式:a)在声明final类成员变量时就附上初值b)在声明final类型的成员变量时部赋上初值,但在类的所有构造方法中为其赋上初值。

10、Static代码块:静态代码块。在class文件从硬盘到java虚拟机上时(即类被加载)执行的,而构造方法是在生成对象时执行的。静态代码块的作用也是完成一些初始化工作。想要调用某个类来生成对象,首先将类加载然后在有这个类生成对象

11、类的静态代码块只会执行一次,是类在被加载时执行的,因为每个类只能被加载一次,所以只执行一次,而构造方法则不然,每次生成一个对象的时候就会调用类的构造方法一次。

12、如果继承体系既有静态代码块又有静态方法,那么首先执行最顶层的静态代码块,一直执行到最底层的静态代码块。然后再去执行最顶层类的构造方法一直到最底层类的构造方法。静态代码块只执行一次。

13、不能在静态方法中访问非静态变量,可以在静态中访问静态的成员变量,可以在非静态方法中访问静态成员变量

14、总结:静态的只能访问静态的,非静态的可以访问一切。

15、不能再静态方法中使用this关键字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值