静态方法为什么不能使用非静态成员变量

      " 静态方法中只能使用静态成员,而不能使用非静态成员。非静态方法中既能使用静态成员,也能使用非静态成员",搞Java的应该都知道这两句话,但是为什么呢? 
      今天同学突然问我这个问题,我也一愣,一直认为就是这样的,但是对细节却不甚了解。后来想了想,然后我对他说:

“静态方法和静态属性,是在你第一次使用这个类的时候加载到内存中,并且以后都不会消失(理论上),除非程序关掉。而非静态成员必须存在于一个实例化的对象中。也就是必须new一个对象分配到堆中后它才存在。你在没有new对象之前它都不存在,你怎么去访问它?”反过来应该都懂得。。。。。。

你可能感兴趣的:(静态方法为什么不能使用非静态成员变量)