关于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为对象进行自动的编名操作
- 关于static静态变量
- 关于PHP的static(静态)变量
- 关于android的静态变量static关键字
- 关于static静态变量的灵活使用
- 关于static静态变量的几个问题
- static定义静态变量
- static 静态变量
- 静态变量java static
- static 静态局部变量
- 静态变量static
- static静态变量
- 静态变量 static
- php static 静态变量
- static静态成员变量
- PHP静态变量 static
- PHP static静态变量
- 静态变量static
- static 静态变量
- jquery EasyUI的formatter格式化函数代码
- Visual Studio 2010中GetMenu()和GetSubMenu(0)引发异常的一个简单解决方法
- vs2008和SQL Server使用ADO连接方法
- 怎么实现Spring里面的基于基包名下的所有类的扫描
- JS正则表达式获取分组内容的方法详解
- 关于static静态变量
- c++ mysql二进制存取,blob存取
- @GeneratedValue 与 @GenericGenerator
- go语言导入文件(固定长解析)(一)
- PAT Basic Level 1011. A+B和C(15)
- super关键字
- infobright优化-group by 字段在过程再次处理会很耗时
- Java关键字介绍之final
- Git修改前一次提交的方法(特别注意保持Change-Id不变)