在静态方法中不能访问类的非静态成员变量和非静态方法,
因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
从上面代码里看出:
- 1.静态方法不能调用非静态成员变量。静态方法test2()中调用非静态成员变量address,编译失败。这是因为,在编译期并没有对象生成,address变量根本就不存在。
- 2.静态方法不能调用非静态成员方法静态方法test2()中调用非静态方法test1(),编译失败。这是因为,编译器无法预知在非静态成员方法test1()中是否访问了非静态成员变量,所以也禁止在静态方法中调用非静态成员方法
- 3.非静态方法可以调用静态成员变量非静态成员方法test1()访问静态成员方法test2()/变量name是没有限制的