asp Don NET

梦想照进现实

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
记得刚开始学写程序的时候,经常在main中直接调用类中的成员方法(非静态),最记忆犹新的就在javac编译器中的提示信息:"无法再静态上下文中引用非静态成员"(C#中则提示需要对象引用,意思就是说应该先创建一个包含该调用方法的对象的实力,然后再调用该方法)
在重新温习了static之后有了一些想法,叙述如下:

this关键字的含义是:引用类的当前实例.
说的直白一些,this其实就是当前实例的引用值,属于对象级别.
static关键字表示成员为静态属性, 如果表示了成员方法,则该方法属于类的级别

也就是说,被static关键字表示的成员,在类的编译之后就已经存在于内存中了,


所以,在main中调用static是没有问题的,
相反,当我们试图直接(不经过实例化)在main中去调用一个非静态的成员的时候当然要出错啦!(怎么可能拿到本不存在的东西呢)

同理可知,静态成员存在于类一级,并且不是对象的一部分,因此没有 this 指针。

posted on 2008-09-25 20:09  abc123def  阅读(355)  评论(0编辑  收藏  举报