关于static
各位高手好,
请问:java中为什么要用static,用static有什么好处呢?
谢谢了!!!
问题点数:20、回复次数:15Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-01 11:53:05 得分 0
static属于类
所有类的对象都共同用这一个static
Top
2 楼Dan1980()回复于 2005-04-01 12:00:10 得分 0
static成员只初始化一次, 在类装载的时候完成.
不是说用static就有什么特别的好处, 根据实际需要罢了.Top
3 楼javarat()回复于 2005-04-01 12:06:14 得分 0
static不依赖于对象,依附于类本身的。
举个例子,
当你想调用一个方法时,
一般你都得先创建这个类的对象
然后调用这个方法:
new TestStatic().testMethod();
对吧。。。
如果是静态的成员,你就可以直接用类调用啦:
TestStatic.testMethod()
其中System.out.println()也是个例子Top
4 楼opencsdn(虚心求教)回复于 2005-04-01 12:07:29 得分 0
用static无非两个原因:
1:这个方法或域没有必要每个对象实例都有!
2:需要所有对象共享这个域Top
5 楼Terminator_2004(孤叶飘舞)回复于 2005-04-01 12:13:51 得分 20
如果说一个成员被声明为STATIC,它就能够在它的类的任何对象创建之前被访问而不必引用任何对象,
它们可以可以与类的名称一起使用而无需创建类的对象来访问类!静态方法只能周用其他的静态方法,
并且只能访问静态变量.这个类的所有对象共享同一块数据.
至于好处吗:
普通的类,每次创建一个新的对象时,都必须更新每个对象的实例变量,多余的副本浪费了内在空间,也浪费了时间而且容易出错, 如果将变量声明为静态变量,java只保存变量的一个副本可以节省内存空间节省CPU时间!Top
6 楼watcher_shen(吉吾)回复于 2005-04-01 14:52:52 得分 0
所谓静态就是说不依赖于某个具体实例的性质或行为。
静态的行为只能使用静态的性质,而静态的性质则能被所有的行为利用。
为什么要有呢?其实原因就是一个:减少系统消耗。好处呢,就是可以减少系统消耗。Top
7 楼topil(认认真真学习,塌塌实实工作)回复于 2005-04-01 16:30:15 得分 0
路过 :)Top
8 楼chg2008(岂能尽如人意,但求无愧我心!)回复于 2005-04-01 16:42:41 得分 0
路过学习Top
9 楼indi(初级程序员)回复于 2005-04-01 17:03:34 得分 0
thinking in java上对static有比较形象的描述。
多看几遍,其义自现。Top
10 楼cfsego(陈传文)回复于 2005-04-01 17:07:52 得分 0
使用static的方法不用先创建一个类的实例,因为static后的方法属于类,这就类似于在c++里面使用[类名]::[方法名]来调用方法一样.
这样作的好处是减小了系统的性能和内存需求的开销(不用创建实例和对其进行初始化).
使用static要看情况,该出手时才出手,不然会对类的封装性有影响.Top
11 楼zhbcczfwly(斜马)回复于 2005-04-01 19:58:49 得分 0
明白了点点 还得看看Top
12 楼eboy2004(jiabaoyu)回复于 2005-04-05 13:50:39 得分 0
please refer to "thinking in java",a book or PDF of its.Top
13 楼heyuan12(heyuan< 飞在天上的鱼 >)回复于 2005-04-05 14:53:04 得分 0
学习Top
14 楼xielittle(雲中漫步)回复于 2005-04-05 18:36:13 得分 0
回复人: javarat() ( ) 信誉:100 2005-04-01 12:06:00 得分: 0
static不依赖于对象,依附于类本身的。
举个例子,
当你想调用一个方法时,
一般你都得先创建这个类的对象
然后调用这个方法:
new TestStatic().testMethod();
对吧。。。
如果是静态的成员,你就可以直接用类调用啦:
TestStatic.testMethod()
其中System.out.println()也是个例子
Top
15 楼liuzhx(钟情java)回复于 2005-04-06 04:00:57 得分 0
理解了Top




