关于static静态变量

来源:互联网 发布:全球域名注册量排名 编辑:程序博客网 时间:2024/05/16 05:22

一、什么是静态成员
·在成员前面加上static关键字,可以将其声明为静态成员
 
 两个主要特点:1、生命周期
                         2、共享
  

二、static属性声明及使用
1)在成员变量前加上static关键字,可以将其声明为静态成员变量
2)所有对象都共享其成员变量
3)静态成员变量的作用域只在类部,但生命周期却贯穿整个应用程序

 


三、static修饰属性的特点:
·每一个对象都拥有各自的堆栈空间,堆内存空间中保存每个对象的各自属性,但是所有的static属性是保存在全局数据区之中,所有的对象指向全局数据区中的一个内容,所以当一个对象修改之后,所有对象的内容将全部变化.

 


四、static属性的注意事项
1)和程序同生命周期(生命周期:即程序的最开始到程序的结尾)
2)在没有实例化对象时,可以通过类名调用静态成员变量
3)也可以通过对象去访问静态成员变量,但无论是使用哪个对象,访问到的都是同一个成员变量
4)静态成员在变量声明时最好初始化,如果不初始化,系统将默认初始化为0

 


五、static方法的声明及使用
1)在成员方法前面加上static关键字,可以将其声明为静态成员方法
2)静态成员方法只能对类的静态成员变量进行操作
3)静态成员方法没有this引用
4)在没有实例化对象之前,可以通过类名访问静态成员方法

 


六、静态成员的小结
1)静态成员包括静态成员变量和静态成员方法
2)静态成员属于整个类而不属于某个对象,它被所有的对象共享
3)静态成员一般通过类名去访问,也可以通过对象访问
4)静态成员也受访问权限的限制
5)静态成员变量在使用之前尽量初始化
6)静态成员方法不能操作非静态成员
7)静态成员没有this引用
8)静态成员没有super关键字

 
七、问题
1)静态成员方法为什么不能操作非静态成员?
  答:因为静态成员方法和程序是同周期的,而非静态成员是属于具体的某个对象的,静态成员   方法在对象还没有实例化的时候就可以用类名直接调用了

 

2)静态成员为什么没有this引用?
  答:this是指当前的对象,而静态成员是属于整个类,不属于某个对象,它被所有的对象共享

 

八、static相关应用
1、范例一:static属性是所有对象共享的,那么就可以使用static属性  统计一个类到底产生了多少个实例化对象


2、范例二:可以使用static为对象进行自动的编名操作

 

 


 

0 0