static的特点
- static是一个修饰符,用于修饰成员。
- static修饰的成员被所有对象共享。
- static优先于对象存在,因为static的成员随着类的加载而存在。
- static修饰的成员多了一种调用方式,可以直接被类名调用。调用格式为“类名.静态成员”。
- static修饰的数据是共享数据,对象中存储的是特有数据。
静态使用的注意事项
- 静态成员只能访问静态成员。
- 静态方法中不可以使用this或者super关键字。
- 主函数是静态的。
静态什么时候使用?
静态变量
当分析对象中所具备的成员变量的值都是相同的,这时,这个成员就可以被静态修饰。只要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的。如果是相同的数据,对象不需要修改,只需要使用即可,不需要存储在对象中,定义成静态的变量。
静态函数
看该函数功能是否有访问到对象中的特有数据。如果需要,该功能就是非静态的。如果不需要,该功能就是静态的。
静态代码块
随着类的加载而执行。而且只执行一次。
作用:用于给类进行初始化。不是所有的类都要通过构造函数初始化。
static
{
}
对比构造代码块
构造代码块可以给所有对象进行初始化。
构造函数是给对应的对象进行针对性的初始化。