黑马程序员技术交流社区
标题:
静态的具体用法,,,
[打印本页]
作者:
0416_张威
时间:
2015-5-4 21:57
标题:
静态的具体用法,,,
静态:static。
用法:是一个修饰符,用于修饰成员(成员变量,成员方法)。
当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,
还可以直接被类名调用。格式: 类名.成员。
static 特点:
1 随着类的加载而加载(反之,也随着类的消失而消失)
2 优先于对象存在
3 被所有对象所共享
4 可以直接被类名调用
实例变量(即成员变量)和类变量(即静态的成员变量)的区别
1 存放位置的区别
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2 生命周期
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
静态使用注意事项:
1、静态方法只能访问静态成员。
非静态方法既可以访问静态成员也可以访问非静态成员。
2、静态方法中不可以定义this、super关键字。
因为静态优先于对象存在。所以不可以出现this等字样。
静态的优缺点:
优点:1、对于对象的共有数据进行单独空间存储,节省空间。没有必要在每一个对象中都存储共有的数据。
2、 可以直接被类名调用。
缺点: 1、生命周期过长,随着类的消失而消失。
2、访问具有局限性。(静态方法只能访问静态成员)
为什么要使用静态:
如果某个内容是被所有对象所共享,那么该内容就应该用静态来修饰。
没有用静态修饰的内容其实是属于对象的特殊描述。
什么时候使用静态:
因为静态修饰的有成员变量和成员方法,所以要从两方面来分析。
1、什么时候定义静态变量(类变量)?
当对象中出现共享数据时,该数据被静态修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
2、什么时候定义静态方法?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。
作者:
yufuhong
时间:
2015-5-4 22:08
:victory,,,,,,,,
作者:
黄文昭
时间:
2015-5-4 22:37
谢谢分享。
作者:
米江波
时间:
2015-5-4 23:11
学习了亲 谢谢你的分享
作者:
yihuihua
时间:
2015-5-4 23:24
已贴到本地,谢谢分享
作者:
1017161726
时间:
2015-5-4 23:34
看来你理解了
作者:
maoczsd
时间:
2015-7-3 23:51
谢,,,,,,,,,,,,,,,,,,,
作者:
鲤鱼仙
时间:
2015-7-4 00:18
谢谢给的总结 自己感觉好乱的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2