类变量和类方法
- 使用场景:当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量。
- 类变量与实例变量的区别:类变量时该类所有对象共享的,而实例变量是每个对象独享的。
- 加上static称为类变量或者静态变量,否则称为实例变量、普通变量、非静态变量。
- 类变量可以通过 类名.类变量名 或者 对象名.类变量名 来访问,但java设计者推荐我们使用 ==类名.类变量名== 方式来访问。【前提是满足访问修饰符的访问权限和范围】
- 实例变量不能通过 类名.变量名 访问。
- 类变量在类加载的时候就初始化了,即使没有创建对象,只要类加载了,就可以使用类变量,、
- 类变量的生命周期是随类加载开始,随类消亡而销毁。
注意事项
- 类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区:类方法中无this参数(普通方法中隐含着this的参数)
- 类方法可通过类名调用,也可通过对象名调用。
- 普通方法和对象有关,需要通过对象名.方法名(参数),不能通过类名调用。
- 类方法中不允许使用和对象有关的关键词,例如this和super
- 类方法中只能访问静态方法或静态变量。
- 普通成员方法,既可以访问非静态成员,也可以访问静态成员。