面向对象之static的理解
来源:互联网 发布:可视化分析软件 编辑:程序博客网 时间:2024/05/17 23:13
static用法
static修饰的内容属于类,不单独属于某个对象,所有对象共享,内存只有这一份。用法:用于修饰成员变量,成员函数。
栈内存存放方法区,数据区,共享区。堆内存存放对象和数组
static特点
1.随着类的加载而加载,也就是会随着类的消失而消失,生命周期最长,定义静态过多,内存负担太大,对象消失静态变量也会存在。2.优先于对象而存在
3.所有对象所共享
4.可以直接被类名调用
一 实体变量和类变量的区别
1.存放位置类变量随着类的加载而存在于方法区中
实例变量随着对象的建立而存在于堆内存中
2.生命周期
类变量生命周期最长的,随着类的消失而消失
实例变量:生命周期随着对象的消失而消失
3.静态方法是用注意事项
1.静态方法只能访问静态成员 (方法和变量) ,非静态方法可以访问静态和非静态成员
2.静态方法中不可以定义this,super关键字,因为静态优先于对象存在
3.主函数是静态的
二 主函数
1.主函数是一个特殊的函数,可以被jvm调用2.public:代表着该函数访问权限是最大的
3.static:表示随着类的加载而加载
4.void :主函数没有返回值
5.main :不是关键字,但是很特别,可以被jvm识别,javac启动编译器,java启动jvm
三 对象私有化
*构造对象私有化,可以防止方法被使用四 静态代码块
static {执行语句}静态代码块随着类的加载而运行,只执行一次,通过静态代码块可以判断类有没有被加载
构造代码块给对象创建的 用{执行语句}表示,创建对象时会执行,构造代码块要比构造函数先初始化
五 构造对象创建过程中程序进行了哪些步骤
例如Person p=new Person("zhangsan","20");1.因为new的时候用到的是Person.class文件,所以会现在内存中找到Person.class文件并加载到内存中
2.执行该类的静态代码块,如果有的话,给Person.class进行初始化
3.在堆内存中开辟空间,分配内存地址
4.在堆内存中建立对象的所有属性,并进行默认初始化
5.对属性进行显示初始化
6.对对象进行构造代码块初始化
7.对对象进行对应的构造函数初始化
8.将堆内存地址付给栈内存中的p变量
- 面向对象之static的理解
- static之面向对象
- 面向对象的编程之static关键字
- 面向对象的static
- 面向对象的static
- 面向对象中的构造方法以及关键字static的理解
- PHP面向对象之----static
- 面向对象复习,深入理解static关键字
- 面向对象之属性的理解
- 面向对象之继承的理解
- 面向对象之接口的理解
- c#之面向对象的个人理解
- 有趣的理解面向对象之封装!
- 面向对象知识点之static关键字的使用
- php面向对象之final static const关键字的使用
- php的学习笔记之面向对象(六)static
- VC++面向对象的static
- 面向对象的理解
- usb 问题解决方法.txt
- ubuntu10.10安装谷歌拼音输入法
- ubuntu 下安装flash player
- uboot 相关
- (转)HTTP、TCP、UDP、Socket
- 面向对象之static的理解
- (转)TCP、UDP及Socket的关系
- 第十三周 任务四
- javascript ip、域名、手机号码正则表达式验证代码
- update了所有用户的密码,如何恢复?
- 页面刷新不改变隐藏域内容
- 在iphone越狱机器中使用Hook
- VB调用VC++的DLL问题:原因可能是托管的PInvoke 签名与非托管的目标签名不匹配。请检查PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
- iphone 不规则button