static关键字的使用

      是否使用static关键字来修饰字段或方法决定了字段或方法是对类有意义还是对类的实例有意义。所谓“对类有意义”或“对”实例有意义”都是予以范畴的概念。比如对Human这个类来说,Weight(重量)这个字段对人类的个体来说是有意义的,而对于人类这个概念并没有什么意义;Amount(重量)这个字段就不一样了,他对于人类的个体没有意义,但对于人类是有意义的。方法也有类似的情况,比如Speak这个方法,只有人类的个体才能Speak,而Populate(繁衍)这个方法似乎对于人类比对于人类的个体更有意义。为了让朝鲜满足予以要求,c#语言规定:对类有意的字段和方法是有static关键字修饰,称为静态成员,通过类名家访问操作符(即“.“操作符)可以访问他们;对于类的实例有意义的字段和方法不加static关键字,成为非静态成员或实例成员。
        从语义方面来看,静态成员与非静态成员有着很好的对称性,但从程序在内存中的结构来看,这种对称就被打破了。静态字段在内存中只有一个拷贝,非静态字段则是每个实例都有一个拷贝,无论方法是否为静态的,内存中止会有一份拷贝,区别是你能通过类名来访问存放指令的内存还是通过实例名来访问存放指令的内存。

      转自网络                    

posted @ 2013-01-31 14:58  H·T·K  阅读(212)  评论(0编辑  收藏  举报