static:静态的 特点:1:其修饰的成员变量随着类的加载就在方法区中的静态区开辟内存, 优先于非static修饰的成员变量开辟内存
2:修饰的成员变量是该类的所有对象共存,节约内存
3:可以通过类名和对象访问静态成员变量

静态成员变量和非静态成员变量得区别
1:存储数据
静态成员变量存储的是所有对象共享的数据
非静态成员变量存储的是每一个实例化对象特有的数据
2:存储位置
静态成员变量是随着类的加载就在方法区中的静态区开辟内存了
非静态成员变量是随着每个实例化对象的创建在堆中开辟内存
3:调用方式
静态成员变量既可以通过对象访问也可以通过类名直接访问
非静态成员变量只能通过对象访问
4:生命周期
静态成员变量是随着类的加载就在方法区中的静态区中创建,程序结束才被释放
非静态成员变量是随着对象的创建在堆中出现,随着对象被垃圾回收而消失
实例成员变量---->>非静态成员变量
类变量----->>静态成员变量
实例成员函数---->>非静态成员函数(既可以访问非静态成员变量,也可以静态成员变量)
类函数----->>静态成员函数(函数内只能使用静态成员变量,不能访问非静态成员变量)
什么时候用static修饰
当成员变量需要被雷的所有对象共享时,当成员函数没有用到其所属的类的任何非静态成员时用static
网友评论