首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【收拾】static的用法

2012-08-22 
【整理】static的用法来之博客园http://www.cnblogs.com/wlb/archive/2009/12/18/1627426.htmlstatic是从面

【整理】static的用法

来之博客园http://www.cnblogs.com/wlb/archive/2009/12/18/1627426.html
    static是从面向过程到面向对象的遗留产物,以往开发都是面向过程的,所以很多使用了静态类、静态方法,到了面向对象以后,这个关键字被保留下来了。因此面向对象开发中最好不用或少用static关键字。无论是静态类还是非静态类,效果都是一样的,没什么区别。如果你非要让我使用静态类,那么这样做的意义在哪里?如果我把非静态类该为静态类,那么会不会有什么问题?

???? 下面针对以上的一些观点,笔者阐述下自己的理解,如果哪里有写的不对的地方,还请指出。

    static关键字的确是面向过程开发的时代就有的关键字,但是并不代表是面向对象开发中就应该尽量避免static关键字。静态类跟非静态类效果肯定是不一样的,区别肯定是有的。根据笔者的经验,static类一般用于与状态无关的类。那么,什么是与状态无关的类?我的理解是当一个类中没有属性,只有方法的的时候,就可以认为这个类是与状态无关的类。回想非静态类实例化一个对象,目的在什么地方?目的就是通过这个实例化的对象来保存类的状态。
    不是吗?例如
    A a = new A();
    a.Name = "Kevin";
    a.Sex = "男";
    ......
    通过我们实例化的对象a,类的状态被对象a保持住了。
    如果我们的类没有属性,全是方法,那么,有必要为了调用类中的方法,先实例化一个对象出来吗?
    因此,笔者建议,在做类的设计的时候,如果类是与状态无关的类,建议将其设计为static类。
    至于说这样做的意义:首先,省略了构造一个对象的性能损耗,虽然可以忽略不计。其次,对程序员比较友好,调用类的方法更加的方便。只要一个类是与状态类无关的类,那么将其设计成静态类是没有问题的。

待续...

热点排行