类变量
一、什么是类变量
在java中,类变量(也叫静态变量,或者叫静态属性)用static 修饰,用来修饰成员变量和成员方法,或静态代码块,静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行,类变量用于多个对象使用同一个属性,使一些变量需要在不同的业务中重复使用并且同一个变量的值在整个项目的各个地方都要保持一致
二、如何定义类变量
- 访问修饰符 static 数据类型 变量名;
- static 访问修饰符 数据类型 变量名;
例如:public static int count = 0; or static public int count = 0; 都可以
三、如何访问类变量
- 类名.类变量名
- 对象名.类变量名
必须遵守访问权限,与普通属性一致
四、使用细节
1.当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量)
2.类变量是该类的所有对象共享的,而实例变量是每个对象独享的。
3.加上static 称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量
4.类变量可以通过 类名.类变量名 或者对象名.类变量名 来访问,但java设计者推荐使用前者方式访问。
5.实例变量不能通过 类名.类变量名 方式访问
6.类变量是在类加载时就初始化了,也就是说,即使你没有创建对象,只要类加载了,就可以使用类变量了。
7.类变量的生命周期是随类的加载开始,随着类消亡而销毁。
类方法
一、什么是类方法
所谓类方法,就是用static修饰的方法,可以通过类名调用,调用时不需要创建实例
二、如何定义类方法
- 访问修饰符 static 数据返回类型 方法名(){ };
- static 访问修饰符 数据返回类型 方法名(){ };
例如:public static int count(){}; or static public int count(){}; 都可以
三、如何使用类方法
- 类名.类方法名
- 对象名.类方法名
必须遵守访问权限,与普通属性一致
四、使用细节
1.类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区,类方法中无this参数,普通方法有this参数。
2.类方法可以通过类名调用,也可以通过对象调用。
3.普通方法和对象有关,需要对象调用,比如对象.方法名(参数),不能通过类名调用
4.类方法中不允许使用和对象有关的关键字如this,super
5.类方法(静态方法中)只能访问静态变量或静态变量
6.普通成员方法,既可以访问普通变量,可以访问静态变量
小结:
类属性与普通属性区别:
- 类属性只需用类名.属性名即可调用,而普通属性得创建对象才可以使用
- 类属性可以使多个对象使用同一个属性,使同一个变量的值在各个地方保持一致
类方法与普通方法区别:
- 类方法是属于类的,不是对象的。
- 类方法只能访问类方法,实例方法可以访问类方法和实例方法。
- 类方法只能访问类成员变量,不能访问实例变量; 实例方法可以访问类成员变量和实例变量
- 类方法的调用可以通过类名,实例方法只能通过对象。
- 类方法可以被继承,但是无法被覆盖,即重写,实例方法可以被覆盖