随训录 OOP_3.静态成员变量
来源:互联网 发布:终极蜘蛛侠网络勇士 编辑:程序博客网 时间:2024/05/21 15:45
前天因为时间和文档的关系,昨天的博客没有更新,深感歉意,以后还是坚持一下,争取可以做到每日一更。昨天自习看了李彦宏的《开讲了》,感触很多。关键的时候做好自己的抉择!然后一步一步做自己的事情,记得任何时候都是自己的事情。想法深处有一句话感觉特别有感:大学学习就是有指导性的自主学习。
找了一些有关于静态成员的资料:
(1)静态成员包括静态数据成员和静态成员方法
(2)静态成员属于整个类而不是属于某个对象,它被该类的所有对象共享
(3)访问静态成员时一般通过类名访问,也可以通过对象访问
(4)静态成员也受访问权限的约束
(5)静态数据成员在使用之前应尽量初始化
(6)静态成员方法不能操作非静态成员
(7)静态成员方法没有this访问
成员变量和静态变量的区别:
1.两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象被回收而释放
静态变量随着类的加载而存在,随着类的消失而消失
2.调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,还可以被类名调用
3.别名不同
成员变量也称为实例对象
静态变量也称为类变量
4.数据存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据
静态数据成员存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据
列表对比
成员变量,局部变量,静态变量的区别(类包含对象,对象包含方法,方法包含属性)
成员变量 局部变量 静态变量
定义位置 在类中,方法外 方法中,或者方法的形式参数 在类中,方法中
初始值 有默认初始值 无,先定义,赋值后才能使用 有默认初始值
调用方式 对象调用 ----------- 对象调用,类名调用
存储位置 堆中 栈中 方法区
生命周期 与对象共存亡 与方法共存亡 与类共存亡
别名 实例对象---------------- 类变量
JAVA中的初始化的顺序
JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。初始化顺序是:
先初始化父类的静态代码--->初始化子类的静态代码--->(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码(变量定义等)--->初始化父类的构造函数--->初始化子类的非静态代码(变量定义等)--->初始化子类的构造函数
类只有在使用new调用创建的时候才会被JAVA类装载器装入创建类实例时,首先按照父子继承关系进行初始化类实例创建时候,首先初始化部分先执行,然后构造函数,然后从本类继承的子类的初始化块执行,最后是子类的构造方法类消除时候,首先消除子类部分,再消除父类部分。
*静态方法必须访问静态变量和静态方法。
下一篇博客,我会把这段时间(差不多35天左右)的一些总结一下,主要还是方法和思想之类的。可能会很浅,但至少都是自己的。加油!
- 随训录 OOP_3.静态成员变量
- 静态成员、静态变量
- 静态成员变量成员函数
- 独一无二----静态成员变量
- 静态成员变量
- 静态成员变量
- 私有静态成员变量
- 基础知识-静态成员变量
- php 静态成员变量
- c++静态成员变量
- static静态成员变量
- 静态成员变量
- 静态成员变量
- 静态成员变量
- C++静态成员变量
- 静态成员变量
- 静态成员变量
- - 静态成员变量
- nginx平台初探(三)
- 十月,再见;你好,十一月
- 第八周实践项目5--计数的模式匹配
- C++之旅<静态数据成员与静态方法注意事项>
- mybatis学习(二)搭建一个xml形式的mybaits测试
- 随训录 OOP_3.静态成员变量
- 收藏文章
- python在Windows下将.py转换成.exe文件
- nginx平台初探(四)
- Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel(数学规律)
- 常用的一些shell变量
- ——黑马程序员——C语言中二维数组、字符数组和字符串
- Linux 文档的压缩和打包
- BestCoder61(div.2)1002---hdoj 5523 Game