有些类提供一些类似“工具”的方法,不需要new一个这样的对象,再来调用它所提供的方法。
比如:Console类,new一个Console感觉上就是多此一举。
再比如:Math类,提供一些众所周知的数学函数计算,new一个Math类,再调用诸如:
MyMath.Sin(?);
MyMath.Cos(?);
感觉上别扭,也像是多此一举样。当你发现有样的类时,你就会感觉到需要把它们定义为静态类了。再举个例子,比如你写一个“俄罗斯方块”的游戏。
游戏中一供有七种不同的块,每个方块有四种不同的状态。
你可以有两种选择:
1、每回合new一个新的方块,供玩家移动和调整;
2、程序运行时,直接生成七个静态的方块,每回合移动和调整的,只不过是其中一个方块在不同位置的显示;
另外,整个“游戏”就是一个Game类,需要动态new一个,再MyGame.Star()吗?
或是直接Game.Star()来得自然一些呢?遇多了,你就有感觉了,慢慢来。

解决方案 »

  1.   

    同意bbdog的说法,可以这么说静态方法类似于面向过程开发中的基础函数库的概念(或者说是那些您认为系统本来就该有的功能),但是静态变量并不这么简单,静态方法只能调用静态变量,静态变量在所有的类实例中只有一份副本,所有的实例共享这个静态变量,因此可以使用静态变量进行某些统计功能或者对象实例间通信功能,但是应该慎用。