------- android培训、java培训、期待与您交流! ----------
- 静态static
1.主要用于修饰类的成员(成员函数,成员变量)
2.好处:代码上没区别,但当成员定义成static后,就可使其从对内存中独立出来,让其他对象共享,从而减少对内存空间的占用
3.当成员被定义成static后,就多了一种调用方式,除了可以通过对象调用,还可以直接通过类名.静态成员调用
4.经验:对于可变的我们把它定义为非静态,而不变的把它定义成静态的,让其他成员共享
静态的特点:
1,随着类的加载而加载(也就是说:随着类的消失而消失,说明他的生命周期最长)
2.优先于对象而存在
3.被对象所共享
4.可以直接通过类名调用
类变量与成员变量的区别:
* 1.存放位置
* 类变量随着类的加载而存在于方法区(共享区)中,
* 成员变量随着对象的创建而存在于堆内存中
* 2.生命周期
* 类变量的生命周期最长,随着类的消失而消失
* 成员变量随着对象的消失而消失
*
静态的使用注意事项:
* 1.静态方法只能访问静态成员(成员变量和成员方法),不能访问非静态成员
* 原理:静态方法随着类的加载而加载,他优先于对象而存在,而非静态成员是随着对象的创建而存在,这时候对象还未创建,故不存在非静态成员,调用出错是必然的
* 非静态方法既可以调用非静态的成员也可以调用静态成员
* 原理:当我们在调用一个非静态方法必须创建一个类的对象,对象一旦存在,则非静态成员也就存在,故可以直接调用,而静态成员优先于对象而存在,当然可以之间调用!
* 2.静态方法中不可以定义this,super关键字
* 原理:因为在调用非静态成员时,对象都未创建,哪来的this,super?
静态有利有弊:
* 利处:可以被对象所共享,单独开辟一个内存空间进行存储。
可以直接通过类名直接调用。
* 弊端:生命周期过长。
* 访问受到限制(静态方法只能访问静态成员)
- 静态什么时候用?
* 要从两方面下手
* 因为静态修饰的内容有成员变量(类变量)和成员函数
* 1,什么时候定义静态变量?
* 当变量中含有类对象的共享数据时,须把它定义为静态变量,从堆内存中独立出来,独立分配一个存储空间
* 2.什么时候定义静态函数?
* 当函数中不含有对象的特有数据(非静态数据)时,需把它定义为静态函数
3.扩展
当有多个类都需要调用同一个类的某些函数或变量时 ,可把这个类中的函数和变量都声明为静态的,让其他类进行共享,如:.net中的sqlhelper
问题:虽然可以使用ArryTool工具类来完成对数据的操作,但出现了如下问题
1,对象是用于封装数据的,但ArryTool并未封装有数据
2.操作数组的每个方法中都没有用到ArrayTool对象的特有数据
解决办法:
1. 可将该类中的方法都定义为静态的,通过类名.方法名来访问,但在调用时还是可以创建对象的,只是再次创建对象没意义罢了!
2.为了使得程序更为严谨,可把其构造函数私有化,强制让该类不能创建对象!只能通过类名.方法名来访问
- 代码块
1,静态代码块
特点:随着类的加载而执行,只执行一次 static{},给类进行初始化
类加载的条件:必须使用到类中的成员,才算是执行了类的加载
相关推荐
软件质量保证与测试——静态白盒测试 (1).pdf软件质量保证与测试——静态白盒测试 (1).pdf软件质量保证与测试——静态白盒测试 (1).pdf软件质量保证与测试——静态白盒测试 (1).pdf软件质量保证与测试——静态白盒...
动态库的创建和使用——静态加载 动态库的创建和使用——静态加载 动态库的创建和使用——静态加载 动态库的创建和使用——静态加载
品优购项目实例 黑马程序员 适合新手 静态网页
内存分配——静态存储区 栈 堆.doc 很好的讲解。
华为——静态时序分析与逻辑分析,可以参考看一下,作为平常的设计判断,是pdf文档
Flex教程系列, ...Flex教程系列之(五) AS3语法——静态常量继承和接口 http://download.csdn.net/source/1161921 Flex教程系列之(六) AS3语法——数组和类型转换 http://download.csdn.net/source/1161978
计算机网络实验报告——静态路由与缺省路由的使用.pdf
Cisco Packet Tracer - 路由配置——静态配置.zip
纯液体饱和蒸汽压的测定——静态法华南师范大学物化实验.doc
零基础必看路由协议——静态路由基础.doc
multism14中南大学模电仿真实验——静态工作点对放大电路性能指标的影响 NPN-2N2924基本共射放大电路 PNP-2N4291共射放大电路
9、 定义一个静态方法,该方法可以接收一个List,方法内对List进行排序 10、 声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)。
IIS环境下关于发布网页内容访问慢的处理办法——静态页后提升flash等多媒体文件的优化方法
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
课程设计报告及代码 静态单链表操作包括创建 插入 删除 输出初始化 等
包含实验内容和实验报告
论文研究-能源消费对中国雾霾污染的空间溢出效应——基于静态与动态空间面板数据模型的实证研究.pdf, 基于2004——2013年中国30个省、市及自治区的空间面板数据,运用...
CSS——web静态页面设计
AT89S52单片机C语言应用