黑马程序员技术交流社区
标题:
static 提问
[打印本页]
作者:
陈绍坚
时间:
2015-8-6 00:26
标题:
static 提问
对于静态static修饰的成员被该类的所有对象所共享的理解!求大神解答!
作者:
陈绍坚
时间:
2015-8-6 00:27
被这问题迷惑许久,求教!
作者:
FateYin
时间:
2015-8-6 00:35
你可以认为是定义之后在同一个类里面任何的函数(方法)包括构造函数(构造方法)都可以调用它,通俗点讲就是在同一个类里面谁都用调用它, 而且改变它的值的话其他类里面调用它都是改变后的值,我通常喊它叫做全局变量,而我们写在类里面的是局部变量也就是只能在同一个方法里面用,出了这个方法就没了,和FOR循环一样。
作者:
陈绍坚
时间:
2015-8-6 00:38
清楚明白!谢谢大神
作者:
codersun
时间:
2015-8-6 00:47
被static修饰的成员可以被该类的所有对象共享,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制),被static修饰的成员随着类的加载而存在,随着类的退出JVM而消失,生命周期更长
1.static成员变量,可以被所有对象共享,声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了
2.static成员方法,可以直接使用类名调用,不需要实例化
声明为static的方法有以下几条限制:
·它们仅能调用其他的static 方法。
·它们只能访问static数据。
·它们不能以任何方式引用this 或super
调用一个静态方法就是“类名.方法名”,一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
另外static还可以修饰代码块,为类的实例化做初始化;
修饰类(内部类),可以被外部类直接调用方法和成员,不需要实例化;
所有的static修饰的成员均具有较高的加载优先级,会优先非static成员加载。
以上,应该比较清楚了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2