static是关键字也是修饰符:
用于修饰成员(成员变量和成员函数)
被修饰后的成员随着类的加载而加载,优先于对象存在,static的成员随着类的加载就已经存在了,被所有对象所共享,可以直接被类名调用。
注意事项:
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
成员变量和静态变量的区别?
- 两个变量的生命周期不同。
- 成员变量随着对象的创建而存在,随着对象的被回收而释放。
- 静态变量随着类的加载而存在,随着类的消失而消失。
- 调用方式不同
- 成员变量只能被对象调用。
- 静态变量可以被对象调用,还可以被类名调用。
- 别名不同
- 成员变量也称为实例变量。
- 静态变量也称为类变量。
- 数据存储位置不同
- 成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。
- 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
静态使用的注意事项
- 静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)
- 静态方法中不可以使用this或者super关键字。
- 主函数是静态的。
主函数不能直接调用没有static修饰的函数,但是可以通过实例化类后,使用对象调用