记得刚开始学写程序的时候,经常在main中直接调用类中的成员方法(非静态),最记忆犹新的就在javac编译器中的提示信息:"无法再静态上下文中引用非静态成员"(C#中则提示需要对象引用,意思就是说应该先创建一个包含该调用方法的对象的实力,然后再调用该方法)
在重新温习了static之后有了一些想法,叙述如下:
this关键字的含义是:引用类的当前实例.
说的直白一些,this其实就是当前实例的引用值,属于对象级别.
static关键字表示成员为静态属性, 如果表示了成员方法,则该方法属于类的级别
也就是说,被static关键字表示的成员,在类的编译之后就已经存在于内存中了,
所以,在main中调用static是没有问题的,
相反,当我们试图直接(不经过实例化)在main中去调用一个非静态的成员的时候当然要出错啦!(怎么可能拿到本不存在的东西呢)
同理可知,静态成员存在于类一级,并且不是对象的一部分,因此没有 this 指针。
在重新温习了static之后有了一些想法,叙述如下:
this关键字的含义是:引用类的当前实例.
说的直白一些,this其实就是当前实例的引用值,属于对象级别.
static关键字表示成员为静态属性, 如果表示了成员方法,则该方法属于类的级别
也就是说,被static关键字表示的成员,在类的编译之后就已经存在于内存中了,
所以,在main中调用static是没有问题的,
相反,当我们试图直接(不经过实例化)在main中去调用一个非静态的成员的时候当然要出错啦!(怎么可能拿到本不存在的东西呢)
同理可知,静态成员存在于类一级,并且不是对象的一部分,因此没有 this 指针。