static关键字

static:静态的   特点:1:其修饰的成员变量随着类的加载就在方法区中的静态区开辟内存, 优先于非static修饰的成员变量开辟内存

2:修饰的成员变量是该类的所有对象共存,节约内存

3:可以通过类名和对象访问静态成员变量


静态成员变量和非静态成员变量得区别

1:存储数据

静态成员变量存储的是所有对象共享的数据

非静态成员变量存储的是每一个实例化对象特有的数据

2:存储位置

静态成员变量是随着类的加载就在方法区中的静态区开辟内存了

非静态成员变量是随着每个实例化对象的创建在堆中开辟内存

3:调用方式

静态成员变量既可以通过对象访问也可以通过类名直接访问

非静态成员变量只能通过对象访问

4:生命周期

静态成员变量是随着类的加载就在方法区中的静态区中创建,程序结束才被释放

非静态成员变量是随着对象的创建在堆中出现,随着对象被垃圾回收而消失


实例成员变量---->>非静态成员变量

类变量----->>静态成员变量

实例成员函数---->>非静态成员函数(既可以访问非静态成员变量,也可以静态成员变量)

类函数----->>静态成员函数(函数内只能使用静态成员变量,不能访问非静态成员变量)

什么时候用static修饰

当成员变量需要被雷的所有对象共享时,当成员函数没有用到其所属的类的任何非静态成员时用static

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容