非静态成员是属于对象的,每个对象的同一成员值并不一定相同,在内存中也存储在不同的地址,因此此对象的成员A,不同于彼对象的成员A。
那么问题来了:静态的方法不和对象绑定,无法确知要访问哪个对象的成员A。
举一个例子:
Class Person
{
private float weight;//每个人体重都是独立的
public float getWeight(){return weight;}//对象方法,隐含带有this,可访问非静态成员
//相当于 return this.weight;
public static fun() { weight = 10;}//问题:不带this,即不知道是那个person,显然也不知道此weight属于谁。这就是是静态方法不能访问对象成员的原因所在。
温馨提示:答案为网友推荐,仅供参考